Skip to main content
 首页 » 编程设计

python之关于 all() 和 any() 函数的混淆

2025年05月04日22TianFang

我正在学习 python,在理解 all() 和 any() 函数时遇到一些困惑:

1 in [0,2]             #False. Correct. 
all([0,1]) in [0,2]    #True. Why? 1 is not in [0,2] 
any([0,1]) in [0,2]    #False. Why? 0 is in [0,2] 

请您参考如下方法:

您误解了表达式的计算方式。首先,请注意 0是假的,1是真实的。 all([0,1])是False因为并非所有元素都是真实的。 any([0,1])是True因为有些元素是真实的。然后你找False的成员(member)和 True在[0, 2] .当取为数字时,True值为 1和 False值为 0 .因此,False in [0, 2]评估为 True因为False == 0是True , 所以 False在 [0, 2] 中被“发现” .同理,True没有找到,所以你得到 False对于第二个表达式。

通常,all和 any不直接用于列表;将它们与生成器一起使用是很常见的。例如,

any(x in [0, 2] for x in [0, 1]) # "is any of [0, 1] in [0, 2]?" 
all(x in [0, 2] for x in [0, 1]) # "is all of [0, 1] in [0, 2]?"