Python 中如何获取列表的长度(元素个数)?
获取 Python 列表长度用内置函数 len()。本文介绍 len 的用法、复杂度及在其他数据类型上的应用。
用内置函数 len():len(my_list) 返回列表的元素个数。时间复杂度 O(1)——列表内部记录了长度,不需要遍历。
基本用法
my_list = [1, 2, 3, 4, 5]
print(len(my_list)) # 5
len() 适用于所有容器类型
len("hello") # 5(字符串)
len((1, 2, 3)) # 3(元组)
len({'a': 1}) # 1(字典,键的个数)
len({1, 2, 2, 3}) # 3(集合,去重后)
len(range(10)) # 10
常见用法
# 判断是否为空(但惯用法是直接 if not my_list)
if len(my_list) == 0:
print("空列表")
# 配合 range 按下标遍历
for i in range(len(my_list)):
print(i, my_list[i])
注意:for i in range(len(...)) 在 Python 里通常不是最佳写法,直接 for item in my_list 或需要下标时用 enumerate() 更 Pythonic。
常见问题(FAQ)
Q:len() 会不会很慢?
A:不会。CPython 的列表、字典等内置容器都缓存了长度,len() 是常数时间 O(1)。
Q:嵌套列表 len() 算哪层?
A:只算最外层。len([[1,2],[3,4]]) 是 2,不是 4。
Q:生成器能用 len() 吗?
A:不能,生成器没有长度(会抛 TypeError)。要么转列表 len(list(gen))(会消耗它),要么遍历计数 sum(1 for _ in gen)。