如何在Python中對列表的所有值應用“或”?
內建的功能任何你想要的:
>>> any([True, True, False]) True >>> any([False, False, False]) False >>> any([False, False, True]) True
一旦找到真實值,任何一個優點都可以減少對序列中的後續專案的測試.如果序列是在其背後具有昂貴的操作的發生器,這可以非常方便.例如:
>>> def iam(result): ...# Pretend this is expensive. ...print "iam(%r)" % result ...return result ... >>> any((iam(x) for x in [False, True, False])) iam(False) iam(True) True >>> reduce(lambda x,y: x or y, (iam(x) for x in [False, True, False])) iam(False) iam(True) iam(False) True
如果你的Python版本沒有(),all()內建,那麼它們很容易實現為ofollow,noindex" target="_blank">Guido van Rossum suggested :
def any(S): for x in S: if x: return True return False def all(S): for x in S: if not x: return False return True
http://stackoverflow.com/questions/383623/how-do-you-apply-or-to-all-values-of-a-list-in-python