如何使用 Python 中的 zip() 函数将两个列表合并?
在 Python 中,zip() 函数是一个非常强大的函数,可以用来将多个迭代器对象合并成一个元组,进而生成新的列表。
zip() 函数的语法如下:
zip(iterable1, iterable2, ...)
其中,iterable1、iterable2、等等都是迭代器对象,可以是列表、元组、集合、字符串、range() 函数等等。zip() 函数返回一个迭代器对象,该迭代器对象生成一个由元组组成的序列。其中,每个元组中的元素来自输入的迭代器对象中的相应位置上的元素。
现在,让我们看一下具体如何使用 zip() 函数将两个列表合并吧!
假设有两个列表 a 和 b,分别如下所示:
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
现在,让我们使用 zip() 函数将这两个列表合并起来:
c = list(zip(a, b))
print(c)
输出结果如下:
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
可以看到,使用 zip() 函数将两个列表 a 和 b 合并起来,得到了一个新列表 c。c 中的每个元素都是一个元组,分别包含了 a 和 b 中相应位置上的元素。
由于 zip() 函数返回的是一个迭代器对象,因此需要使用 list() 函数将其转换成列表。
除了使用 zip() 函数外,还可以使用 * 运算符将两个列表合并:
c = [(x, y) for x, y in zip(a, b)]
print(c)
输出结果与上面的一样:
[(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
这里使用了列表推导式和 zip() 函数来生成列表 c,其实现方式与上面的例子是等价的。
需要注意的是,当使用 zip() 函数合并两个列表时,如果这两个列表的长度不同,则生成的新列表的长度就等于两个列表中长度较短的那个列表的长度。这是因为 zip() 函数是按照最短长度来进行合并的。
除了将两个列表合并成新列表之外,zip() 函数还可以被用来将多个列表、元组或其他迭代器对象合并成一个元组序列。只需要将需要合并的迭代器对象作为参数传给 zip() 函数即可。
总之,zip() 函数是 Python 中一个非常有用的函数,使用它可以轻松地将多个列表合并成一个新的元组序列。
