You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中any()函数真值识别异常求助:为何判断结果不符预期?

你误解了any()函数的返回值!

哦,我完全懂你为啥困惑——这是刚接触any()函数时很容易踩的坑!

问题出在你对any()的作用理解错了:any()返回的是一个布尔值(True/False),而不是列表中匹配的元素。它的逻辑是:遍历传入的可迭代对象,只要其中有一个元素是“真值”(非空、非零、非False等),就返回True;如果所有元素都是假值,才返回False。

回到你的代码:

local = [(0, 4), (0, 5), (1, 4), (0, 3)]
start = (0,5)
print(any(local))  # 输出True,因为所有元组都是非空的,都是真值
print(start == any(local))  # 相当于(0,5) == True,当然返回False!

正确的写法有两种:

  • 最简洁的方式:用in运算符,这是检查元素是否在列表里的标准做法:
    start in local  # 返回True,完美符合你的需求
    
  • 如果一定要用any()(比如需要更复杂的匹配逻辑),要给any()传一个生成器表达式,明确检查每个元素是否等于start:
    any(x == start for x in local)  # 遍历每个x,只要有一个x等于start就返回True
    

这样就能得到你预期的结果啦!

内容的提问来源于stack exchange,提问作者TheQuant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:27:37