此问题是由拼写错误或无法再重现的问题引起的。虽然类似的问题可能是 on-topic在这里,这个问题的解决方式不太可能帮助 future 的读者。
关闭 9 个月前。
社区审核了是否重新打开此问题9 个月前并关闭:
原始关闭原因未解决
我有一个包含子列表的列表。我想打印所有长度等于 3 的子列表。
我在 python 中执行以下操作:
for x in values[:]:
if len(x) == 3:
print(x)
values
是原始列表。上面的代码是否为 x
的每个值打印每个长度等于 3 的子列表?我想只显示一次 length == 3
的子列表。
问题解决了。问题出在 Eclipse 编辑器上。我不明白原因,但是当我运行循环时它只显示了我列表的一半。
我需要在 Eclipse 中更改任何设置吗?
最佳答案
x in mylist
比 x in mylist[:]
更好且更具可读性,并且您的 len(x)
应该等于 3
.
>>> mylist = [[1,2,3],[4,5,6,7],[8,9,10]]
>>> for x in mylist:
... if len(x)==3:
... print x
...
[1, 2, 3]
[8, 9, 10]
或者如果你需要更多的pythonic使用list-comprehensions
>>> [x for x in mylist if len(x)==3]
[[1, 2, 3], [8, 9, 10]]
>>>
https://stackoverflow.com/questions/9138112/