6.7 利用 any 代替 for 循环

http://image.iswbm.com/20200804124133.png

在某些场景下,我们需要判断是否满足某一组集合中任意一个条件

这时候,很多同学自然会想到使用 for 循环。

found = False
for thing in things:
    if thing == other_thing:
        found = True
        break

但其实更好的写法,是使用 any() 函数,能够使这段代码变得更加清晰、简洁

found = any(thing == other_thing for thing in things)

使用 any 并不会减少 for 循环的次数,只要有一个条件为 True,any 就能得到结果。

同理,当你需要判断是否满足某一组集合中所有条件,也可以使用 all() 函数。

found = all(thing == other_thing for thing in things)

只要有一个不满足条件,all 函数的结果就会立刻返回 False