在Python中循环列表

我有一个列表中的子列表。 我想打印长度等于3的所有子列表。

我在python中执行以下操作:

for x in values[:]: if len(x)==3: print x 

'价值'是原来的名单。 上面的代码打印每个x的长度等于3的所有子列表吗? 我想显示length==3只有一次的子列表。

问题已经解决了。 问题是用eclipse编辑器。 我不明白原因,但是当我运行我的循环时,它只显示我的列表的一半。

有什么设置,我必须改变在日食?

尝试这个,

x in mylist中的x in mylist[:]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使用列表parsing

 >>> [x for x in mylist if len(x)==3] [[1, 2, 3], [8, 9, 10]] >>> 

你也可以for x in values使用for x in values而不是for x in values使用for x in values for x in values[:] ; 后者做了不必要的拷贝。 此外,当然,代码检查长度为2而不是3 …

代码只打印每个x值的一个项目 – 而x则遍历values的元素,即子列表。 所以它只会打印每个子列表一次。