zip: 拉链
用于合并多个iterable,如 list
,dict
, tuple
,set
等,生成一系列元组:
zip
使用两个参数的例子:
friends = ["Rolf", "Bob", "Jen", "Anne"]
time_since_seen = [3, 7, 15, 11]
long_timers = dict(zip(friends, time_since_seen))
long_timers_list=list(zip(friends, time_since_seen))
print(long_timers)
# {'Rolf': 3, 'Bob': 7, 'Jen': 15, 'Anne': 11}
print(long_timers_list)
# [('Rolf', 3), ('Bob', 7), ('Jen', 15), ('Anne', 11)]
zip
使用3个参数的例子:
integers = [1, 2, 3]
letters = ['a', 'b', 'c']
floats = [4.0, 5.0, 6.0]
zipped = zip(integers, letters, floats) # Three input iterables
print(list(zipped))
# [(1, 'a', 4.0), (2, 'b', 5.0), (3, 'c', 6.0)]
iterable 长度不等时的例子:
from itertools import zip_longest
numbers = [1, 2, 3]
letters = ['a', 'b', 'c']
longest = range(5)
zipped = zip_longest(numbers, letters, longest, fillvalue='?')
print(list(zipped))
# [(1, 'a', 0), (2, 'b', 1), (3, 'c', 2), ('?', '?', 3), ('?', '?', 4)]