假设我有一个类似下面的列表,我试图迭代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方法吗?
答案 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])