zip()是 Python 中一个非常实用的内置函数,用于将多个可迭代对象(如列表、元组、字符串等)的元素配对组合。
1. 基本用法
将两个列表配对
names = ["Alice", "Bob", "Charlie"] scores = [85, 90, 95] # 使用 zip 配对 paired = list(zip(names, scores)) print(paired) # 输出: [('Alice', 85), ('Bob', 90), ('Charlie', 95)]将三个可迭代对象配对
numbers = [1, 2, 3] letters = ['a', 'b', 'c'] symbols = ['!', '@', '#'] result = list(zip(numbers, letters, symbols)) print(result) # 输出: [(1, 'a', '!'), (2, 'b', '@'), (3, 'c', '#')]2.不同长度的可迭代对象
当可迭代对象长度不同时,zip()会以最短的可迭代对象为准:
list1 = [1, 2, 3, 4, 5] list2 = ['a', 'b', 'c'] result = list(zip(list1, list2)) print(result) # 输出: [(1, 'a'), (2, 'b'), (3, 'c')] # 注意:list1 中的 4 和 5 被丢弃了3. 在循环中解包
students = ["Alice", "Bob", "Charlie"] scores = [85, 90, 95] # 传统写法 for pair in zip(students, scores): name = pair[0] score = pair[1] print(f"{name}: {score}") # 更优雅的解包写法 for name, score in zip(students, scores): print(f"{name}: {score}") # 输出: # Alice: 85 # Bob: 90 # Charlie: 954. 实用技巧
技巧1:创建字典
keys = ["name", "age", "city"] values = ["Alice", 25, "New York"] person = dict(zip(keys, values)) print(person) # 输出: {'name': 'Alice', 'age': 25, 'city': 'New York'}