Python 如何检查列表是否为空?

Pythonic 的判空写法是 if not my_list:——利用空列表为 False 的真值特性;len(my_list) == 0 也可用但不够简洁。本文给出推荐写法与 None 的区分。

最佳实践
Python 如何检查列表是否为空?封面

推荐写法:if not my_list:——空列表的布尔值是 False,这是最 Pythonic 的判空方式,比 len(my_list) == 0 更简洁。

三种写法对比

my_list = []

# ✅ 推荐:真值判断
if not my_list:
    print("列表为空")

# 可用但啰嗦
if len(my_list) == 0:
    print("列表为空")

# ❌ 不要这样:与空列表字面量比较
if my_list == []:
    print("能工作,但不推荐")

注意区分 None

def process(items=None):
    if items is None:      # 没传参
        items = []
    if not items:          # 空列表(含传入的空列表)
        return "无数据"

None[] 都不是 True,但语义不同——函数默认参数场景要分开判断。

同类对象

空字符串 ""、空字典 {}、空集合 set()0 都是 False——同一套 if not x: 写法通吃。

常见问题(FAQ)

Q:NumPy 数组也能 if not arr 吗? 不能——会抛歧义错误;用 arr.size == 0

Q:为什么不推荐 == []? 创建了新列表对象再比较,效率低且不符合惯用法(PEP 8 明确推荐真值判断)。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台