掌握Python中的zip()函数:将多个序列合并为一个元组列表
Python中的zip()函数是一个非常有用的函数,它可以将多个序列合并成一个元组列表。它的语法非常简单,只需要将需要合并的序列作为参数传递给它即可。
下面是zip()函数的语法:
zip(*iterables)
其中,*iterables表示需要合并的序列,可以是任意数量的序列,包括列表、元组、集合等等。
zip()函数的返回值是一个迭代器,每次返回一个元组,元组中的每个元素来自于被合并的序列中同一位置的元素。
下面是一个简单的例子,演示了zip()函数的基本用法:
lst1 = [1, 2, 3]
lst2 = ["a", "b", "c"]
lst3 = [True, False, True]
zipped = zip(lst1, lst2, lst3)
for x in zipped:
print(x)
输出结果为:
(1, 'a', True)
(2, 'b', False)
(3, 'c', True)
可以看出,zip()函数将三个序列按照相同的位置逐个合并成了元组。
除了合并多个序列外,zip()函数还可以用来对两个序列进行一一对应的操作。例如,可以将两个列表中的元素一一对应,并将它们合并成一个字典:
keys = [1, 2, 3]
values = ["apple", "banana", "orange"]
dictionary = dict(zip(keys, values))
print(dictionary)
输出结果为:
{1: 'apple', 2: 'banana', 3: 'orange'}
可以看出,zip()函数将两个序列进行了一一对应,并将它们合并成了一个字典。
需要注意的是,当被合并的序列长度不同时,zip()函数只会合并其中长度最短的部分。例如,接下来这个例子中,虽然lst1和lst2的长度不同,但是只有两个元素被合并了:
lst1 = [1, 2, 3]
lst2 = [4, 5]
zipped = zip(lst1, lst2)
for x in zipped:
print(x)
输出结果为:
(1, 4)
(2, 5)
需要注意的是,zip()函数返回的是一个迭代器,它只能被遍历一次。如果需要多次遍历,可以将合并的结果转换成列表:
lst1 = [1, 2, 3]
lst2 = ["a", "b", "c"]
zipped = zip(lst1, lst2)
result = list(zipped)
print(result)
print(result)
输出结果为:
[(1, 'a'), (2, 'b'), (3, 'c')]
[(1, 'a'), (2, 'b'), (3, 'c')]
综上所述,zip()函数是一个非常有用的函数,它可以将多个序列合并成一个元组列表,也可以对两个序列进行一一对应的操作。需要注意的是,当被合并的序列长度不同时,zip()函数只会合并其中长度最短的部分。
