python:列表理解中的嵌套展开
我试图在列表理解中实现这一点python:列表理解中的嵌套展开,python,nested,list-comprehension,Python,Nested,List Comprehension,我试图在列表理解中实现这一点 for y in range(depth): # this one works mylist+=[x for x in s[y]] 这需要帮助: # s= [set() for _ in range(depth)] # or list of sets mylist=[x for x in s[y] for y in range(depth)] > y undefined (error - apologize for inexact error me
for y in range(depth): # this one works
mylist+=[x for x in s[y]]
这需要帮助:
# s= [set() for _ in range(depth)] # or list of sets
mylist=[x for x in s[y] for y in range(depth)]
> y undefined (error - apologize for inexact error message)
在列表理解中有可能做到这一点吗
主要问题到此结束
更多关于错误 除了语法错误,我还得到了未定义的
名称y
因此,在列表理解之前,我尝试了y=0
。成功了!没有更多的名称错误。除此之外,它并没有打印出列表的内容,而是一些循环的数字
即使如此,我试图做的是违反一些东西,python似乎也表现得很奇怪。可能是一个bug。您正在查找以下内容:
mylist.extend([x for y in range(depth) for x in s[y]])
理解的层次应与循环的顺序相同。否则会导致解释器在从范围(深度)中的y的
生成y
之前查看s[y]中的x的,
,这是复制错误。用正确的冒号在我的电脑上工作。但我的主要问题仍然存在。请参阅我编辑的帖子。虽然循环在列表理解中的顺序错误,但列表理解示例不会引发SyntaxError
异常;正如Ashwini一直试图指出的,唯一的错误是你把循环的顺序搞混了。啊,明白了。谢谢你指出这一点。我明白他现在想说的话了。我在尝试其他事情时把错误信息弄得一团糟。这可能不是那一行的“语法错误”。但这并不是因为“:”。阿什维尼,如果你能读到这篇文章的话,我为我的困惑道歉。这解决了我的缓冲错误和输出。这是一个奇怪的两天,寻找错误。非常感谢!