Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用下面定义的名为c的列表。创建一个新列表,其中包含列表中出现的5到45之间的所有数字_Python_List - Fatal编程技术网

Python 使用下面定义的名为c的列表。创建一个新列表,其中包含列表中出现的5到45之间的所有数字

Python 使用下面定义的名为c的列表。创建一个新列表,其中包含列表中出现的5到45之间的所有数字,python,list,Python,List,所以我应该从列表“c”中创建一个新的列表“d”,其中“d”包含所有值在5到45之间的“c”的数字 c=[[1,1,12],[2,3,7,23],[54,12,17,90],[43,52,67,9]。 d=[x代表c中的x,如果x在范围(5,45)] 打印(d) 我尝试了这段代码,结果得到了一个空的 []您可以先展平列表: d=[v表示x在c中表示v在x中,如果v在范围(5,45)] 在您发布的代码中,您的列表中有x for x In c。这里的每个x都是一个子列表(例如[1,1,12])。这是

所以我应该从列表“c”中创建一个新的列表“d”,其中“d”包含所有值在5到45之间的“c”的数字

c=[[1,1,12],[2,3,7,23],[54,12,17,90],[43,52,67,9]。

d=[x代表c中的x,如果x在范围(5,45)]

打印(d)

我尝试了这段代码,结果得到了一个空的


[]

您可以先展平列表:

d=[v表示x在c中表示v在x中,如果v在范围(5,45)]

在您发布的代码中,您的列表中有
x for x In c
。这里的每个
x
都是一个子列表(例如
[1,1,12]
)。这是一个
列表
永远不会满足:
x在范围(5,45)
内,因为
range()
将查找单个整数,而不是
列表
。形式为x in y的代码从不查看x

x代表列表中的每个列表。您可以解压缩
c


d=[x代表列表中的x(itertools.chain(*c)),如果x在范围(5,45)]
x
将是一个列表,它不会(正确地)与
范围(5,45)进行比较
object。请使用预期的输出更新您的问题。我发现有时使用常规for循环而不是列表理解来进行故障排除,甚至正确发展列表理解是很有帮助的。是的!谢谢你,这工作做得很好。非常感谢你。我在python中是个彻头彻尾的笨蛋,你能解释一下为什么这与我最初尝试的方法不同吗?请注意,
list()
不是必需的:
itertools.chain()
返回一个iterable。