应用于可迭代对象的每个元素的布尔语句分支
Branch on boolean statement applied to each element of an iterable
有没有 Pythonic 的方式来表达 "is this true of any element in this iterable"?或者,换句话说,是否有更简洁的版本:
if [True for x in mylist if my_condition(x)]:
...
您可以使用 any
:
>>> mylist = [1, 2, 3]
>>> any(x > 4 for x in mylist)
False
>>> any(x % 2 == 0 for x in mylist)
True
if any(my_condition(x) for x in mylist):
....
注意:使用 generator expression 而不是列表理解,您不需要评估所有项目。
有没有 Pythonic 的方式来表达 "is this true of any element in this iterable"?或者,换句话说,是否有更简洁的版本:
if [True for x in mylist if my_condition(x)]:
...
您可以使用 any
:
>>> mylist = [1, 2, 3]
>>> any(x > 4 for x in mylist)
False
>>> any(x % 2 == 0 for x in mylist)
True
if any(my_condition(x) for x in mylist):
....
注意:使用 generator expression 而不是列表理解,您不需要评估所有项目。