最好的答案是使用
all(),这是这种情况的内置函数。我们将其与生成器表达式结合使用,以干净高效地生成您想要的结果。例如:
>>> items = [[1, 2, 0], [1, 2, 0], [1, 2, 0]]>>> all(flag == 0 for (_, _, flag) in items)True>>> items = [[1, 2, 0], [1, 2, 1], [1, 2, 0]]>>> all(flag == 0 for (_, _, flag) in items)False
请注意,
all(flag == 0 for (_, _, flag) in items)它直接等效于
all(item[2] == 0 for itemin items),在这种情况下阅读起来要好一些。
并且,对于过滤器示例,使用列表推导(当然,可以在适当的地方使用生成器表达式):
>>> [x for x in items if x[2] == 0][[1, 2, 0], [1, 2, 0]]
如果要检查至少一个元素为0,则更好的选择是使用
any()更具可读性的元素:
>>> any(flag == 0 for (_, _, flag) in items)True
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)