当前位置:首页 > Python > 正文

Python len()函数详解:用法、示例与常见问题 | Python教程

Python中len()函数完全指南

掌握Python中计算对象长度的核心函数

什么是len()函数?

Python内置的len()函数用于返回对象的长度或项目个数。它是Python中最常用的内置函数之一,可以用于多种数据结构类型。

基本语法

length = len(object)

其中object可以是字符串、列表、元组、字典、集合等可迭代对象。

len()函数的使用场景

1. 字符串长度计算

计算字符串中的字符数量(包括空格和标点符号):

text = "Python编程很有趣!"
print(len(text))  # 输出: 11

中英文字符在Python中都被视为一个字符单位。

2. 列表项目计数

获取列表中元素的数量:

fruits = ['苹果', '香蕉', '橙子', '葡萄', '芒果']
print(len(fruits))  # 输出: 5

# 嵌套列表
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(len(matrix))  # 输出: 3(外层列表长度)

3. 字典键值对统计

计算字典中键值对的数量:

student = {
    'name': '张三',
    'age': 20,
    'major': '计算机科学',
    'university': '清华大学'
}
print(len(student))  # 输出: 4

4. 元组和集合元素计数

同样适用于元组和集合:

# 元组
colors = ('红', '绿', '蓝', '黄', '紫')
print(len(colors))  # 输出: 5

# 集合
unique_numbers = {1, 3, 5, 7, 9, 3, 5}  # 重复元素会被自动去重
print(len(unique_numbers))  # 输出: 5

len()函数的工作原理

当调用len()函数时,Python实际上调用的是对象的__len__()方法:

my_list = [1, 2, 3]
print(len(my_list))      # 输出: 3
print(my_list.__len__()) # 输出: 3

自定义类支持len()函数

通过实现__len__()方法,可以使自定义类支持len()函数:

class Playlist:
    def __init__(self, songs):
        self.songs = songs
        
    def __len__(self):
        return len(self.songs)

my_playlist = Playlist(['Song1', 'Song2', 'Song3'])
print(len(my_playlist))  # 输出: 3

常见错误与注意事项

错误1:对数字类型使用len()

num = 42
print(len(num))  # TypeError: object of type 'int' has no len()

数字类型没有长度概念,会导致TypeError。

错误2:对None使用len()

value = None
print(len(value))  # TypeError: object of type 'NoneType' has no len()

None是空值对象,没有长度属性。

重要提示

len()函数的时间复杂度通常是O(1),因为Python对象在创建时已经存储了长度信息。但对于自定义实现,性能取决于你的__len__()方法实现。

实际应用示例

示例1:数据验证

username = input("请输入用户名(6-12个字符): ")

if len(username) < 6:
    print("用户名太短!")
elif len(username) > 12:
    print("用户名太长!")
else:
    print("用户名有效!")

示例2:循环控制

shopping_list = ['牛奶', '面包', '鸡蛋', '水果']

# 使用len()控制循环次数
for i in range(len(shopping_list)):
    print(f"{i+1}. {shopping_list[i]}")

# 更Pythonic的方式
for index, item in enumerate(shopping_list, start=1):
    print(f"{index}. {item}")

示例3:数据结构分析

data = {
    'employees': ['张三', '李四', '王五'],
    'departments': ['技术部', '市场部', '财务部'],
    'projects': ['项目A', '项目B']
}

print(f"员工总数: {len(data['employees'])}")
print(f"部门数量: {len(data['departments'])}")
print(f"项目数量: {len(data['projects'])}")

总结

  • len()是Python内置函数,用于获取对象的长度或元素个数
  • 支持字符串、列表、元组、字典、集合等数据结构
  • 通过调用对象的__len__()方法实现
  • 不能用于数字、None等类型
  • 在数据验证、循环控制、数据结构分析中广泛应用

"掌握len()函数是成为Python开发者的基础一步,它将在你的编程旅程中频繁出现。"

发表评论