【Python】zip
Python中的zip()函数可以将多个可迭代对象打包成一个元组序列,然后返回这些元组序列组成的迭代器。zip()函数的语法如下:
zip(*iterables)
其中,iterables是可迭代对象,可以是多个,也可以是一个。zip()函数将返回一个迭代器,其中每个元素都是一个元组,元组中的每个元素来自于输入的可迭代对象中相同位置的元素。如果输入的可迭代对象长度不一致,则返回的迭代器长度与最短的可迭代对象相同。
下面是几个zip()函数的例子:
- 将两个列表打包成元组序列:
a = [1, 2, 3]
b = ['a', 'b', 'c']
result = zip(a, b)
print(list(result)) # 输出:[(1, 'a'), (2, 'b'), (3, 'c')]
- 将两个列表打包成字典:
keys = ['a', 'b', 'c']
values = [1,2, 3]
result = dict(zip(keys, values))
print(result) # 输出:{'a': 1, 'b': 2, 'c': 3}
- 将多个列表打包成元组序列:
a = [1, 2, 3]
b = ['a', 'b', 'c']
c = [4, 5, 6]
result = zip(a, b, c)
print(list(result)) # 输出:[(1, 'a', 4), (2, 'b', 5), (3, 'c', 6)]
- 将一个列表解压成多个列表:
pairs = [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
numbers, letters = zip(*pairs)
print(numbers) # 输出:(1, 2, 3, 4)
print(letters) # 输出:('a', 'b', 'c', 'd')