应用于可迭代对象的每个元素的布尔语句分支

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 而不是列表理解,您不需要评估所有项目。