Python中如何使用zip()函数将两个序列打包成元组列表?
发布时间:2023-06-11 02:16:21
在Python中,zip()函数是一个内置函数,它可以将两个或多个序列打包成元组列表。zip()函数可以用于多种场合,例如处理csv文件、按索引合并两个列表/字典或将多个列表/字符串/元组等对象打包成元组列表。下面我们将详细说明如何使用zip()函数将两个序列打包成元组列表。
使用zip()函数的语法如下:
zip(*iterables)
这个函数有任意个参数,每个参数是一个可迭代对象,如列表、元组、字符串等。zip()函数返回一个元组列表。
下面两个示例分别展示了如何使用zip()函数将两个列表和两个字符串打包成元组列表。
1. 将两个列表打包成元组列表
>>> a = [1, 2, 3, 4] >>> b = ['a', 'b', 'c', 'd'] >>> c = zip(a, b) >>> list(c) [(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]
上面的代码中,我们首先定义了两个列表a和b,然后使用zip()函数将它们打包成元组列表c。最后我们使用list()函数将c转换成列表。
2. 将两个字符串打包成元组列表
>>> s1 = 'hello'
>>> s2 = 'world'
>>> s3 = zip(s1, s2)
>>> list(s3)
[('h', 'w'), ('e', 'o'), ('l', 'r'), ('l', 'l'), ('o', 'd')]
上面的代码中,我们定义了两个字符串s1和s2,并使用zip()函数将它们打包成元组列表s3。
在第一个示例中,我们将两个列表打包成元组列表,zip()函数将第一个列表的第1个元素和第二个列表的第1个元素打包成一个元组,第一个列表的第2个元素和第二个列表的第2个元素打包成另一个元组,以此类推,最后所有的元组组成一个列表。在第二个示例中,我们将两个字符串打包成元组列表,zip()函数将第一个字符串的第1个字符和第二个字符串的第1个字符打包成一个元组,第一个字符串的第2个字符和第二个字符串的第2个字符打包成另一个元组,以此类推。
需要注意的是,当序列长度不同时,zip()函数会以最短序列为准。例如:
>>> a = [1, 2, 3] >>> b = ['a', 'b'] >>> c = zip(a, b) >>> list(c) [(1, 'a'), (2, 'b')]
上面的代码中,我们定义了两个列表a和b,其中a包含3个元素,而b只包含2个元素,因此使用zip()函数将它们打包成元组列表时,只会打包前两个元素。
