1.zip函数是Python内置的一个函数,用于将多个可迭代对象(例如列表、元组)中的元素按照相同索引位置合并成一个新的元组。zip函数的基本用法如下:
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
result = zip(list1, list2)
print(list(result)) # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]
2.zip函数会以最短的可迭代对象为准,如果某个可迭代对象长度不足,那么对应位置的元素将被忽略。
如果需要处理长度不一致的可迭代对象,可以使用itertools模块中的zip_longest函数。zip_longest函数会填充缺失的元素,可以指定填充值,默认为None。
以下是zip_longest函数的示例:
from itertools import zip_longest
list1 = [1, 2, 3]
list2 = ['a', 'b']
result = zip_longest(list1, list2, fillvalue=0)
print(list(result)) # 输出:[(1, 'a'), (2, 'b'), (3, 0)]
3.除了基本用法外,zip函数还可以与解包操作结合使用,将可迭代对象拆分成多个独立的列表或元组。例如:
data = [(1, 'a'), (2, 'b'), (3, 'c')]
numbers, letters = zip(*data)
print(numbers) # 输出:(1, 2, 3)
print(letters) # 输出:('a', 'b', 'c')