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

Python列表推导式未将空字符串识别为False的问题排查

问题分析与解决方案:筛选Python中的假值元素

你的代码核心问题是错误使用了严格相等判断i == False,但Python中被视为布尔值False的对象(比如空字符串""、空列表[]、None、空元组()、空字典{}、数字0等),并不都满足与False严格相等的条件:

  • "" == False → False
  • [] == False → False
  • None == False → False

这些元素在布尔上下文中会被判定为False,但和False本身不是同一个对象/值,所以你的列表推导式无法筛选出它们,导致第二个测试用例返回空列表,不符合预期。

修正后的代码

要正确筛选所有被Python视为False的元素,应该直接利用Python的布尔上下文判断,使用not i来检查元素的布尔值:

def find_the_falsehoods(lst):
    return [i for i in lst if not i]

验证测试用例

这个修正后的代码可以通过所有给出的测试:

  • 对于["", "a", "ab"],not ""为True,会被选中,返回[""]
  • 对于[None, 1, [], [0], 0],not None、not []、not 0均为True,返回[None, [], 0]
  • 对于[[[]]],该列表非空,not [[[]]]为False,返回[]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 10:05:01