在python中迭代嵌套列表的更简单方法是什么?

时间:2012-09-20 21:37:30

标签: python nested

假设我有一个类似下面的列表,我试图迭代nested_list[i][1]个元素并返回一个布尔值

nested_list = [[0, 0], [0, 1], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [1, 0], [1, 1], [1, 2], [1, 3], [1, 4], [1, 5], [1, 6], [1, 7], [1, 8], [1, 9]]

print 1 in (nested_list[i][1] for i in range(nested_list))

我仍然是Python的新手,所以有经验的人请告诉我:有更多的Pythonic方法吗?

5 个答案:

答案 0 :(得分:4)

试试这个:

print 1 in (i[1] for i in nested_list)

如果您只想查看会员资格,我建议您确实使用(...)代替[...],因为后者会创建整个列表真的没必要这样做。

答案 1 :(得分:2)

A.R.S已经提出了一个很好的解决方案,但另一个答案就是any(i[1] == 1 for i in nested_list)

答案 2 :(得分:0)

>>> import numpy
>>> a = numpy.array(nested_list)
>>> a[:,1]
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
>>> 1 in a[:,1]
True

答案 3 :(得分:0)

这样的东西?

for (x,y) in nested_list:print y

答案 4 :(得分:0)

让我加上这个。

print(1 in zip(*nested_list)[1])