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

Python中and运算符返回空列表而非布尔值,是预期行为还是Bug?

这是Python的预期行为,不是Bug

Python里的and运算符逻辑和你想的不一样——它不会把结果转换成布尔值返回,而是直接返回第一个假值本身;如果所有操作数都是真值,才返回最后一个真值。

举几个例子你就懂了:

  • 执行[] and False时,第一个操作数[]是假值,所以直接返回[]
  • 要是写成False and [],第一个操作数是False,就会返回False
  • 试下[1] and False,第一个是真值,就会继续判断第二个,最终返回False
  • 再看[1] and [2],两个都是真值,就返回最后一个操作数[2]

空列表确实是假值,但Python的逻辑运算符返回的是原始的操作数对象,不是统一转成布尔值的True或False。这种设计其实很实用,比如可以写result = input_value or default_value,如果输入值为假就用默认值,不用额外写判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:50:22