欢迎访问宙启技术站
智能推送

如何在Python中使用zip()函数来将两个列表合并?

发布时间:2023-05-26 12:12:54

zip()函数是Python中内置的一个函数,它通常用于将两个或多个列表合并到一起,生成一个新的列表。zip()函数的实现非常简单,它接受一个或多个序列作为参数,然后依次从它们的“头部”开始取元素,将这些元素组合成为一个元组,并将这个元组放到一个新的列表中。zip()函数最终返回的是所有这些新元组所组成的列表。

在Python中使用zip()函数将两个列表合并,可以用以下三种方法:使用连通符号、使用列表解析和使用zip_longest()函数。

1.使用连通符号

在Python中,使用“*”符号可以将一个列表解包成多个独立的元素,例如:

a = [1, 2, 3]

b = [4, 5, 6]

c = [*a, *b]

print(c) # [1, 2, 3, 4, 5, 6]

上面的代码中,使用“*”符号可以将列表a和列表b解包成为6个独立的元素,然后将它们连通起来形成一个新的列表c。

对于使用zip()函数合并两个列表,我们可以将这一技巧与zip()函数相结合,例如:

a = [1, 2, 3]

b = ['a', 'b', 'c']

c = [*zip(a, b)]

print(c) # [(1, 'a'), (2, 'b'), (3, 'c')]

上面的代码中,首先将列表a和列表b连通起来,然后调用zip()函数将它们合并在一起,最后将得到的元组列表使用“*”符号解包成为一个新的列表c。

2.使用列表解析

使用列表解析的方法比较经典,它的语法类似于for循环语句,可以非常方便地将两个列表合并起来。例如:

a = [1, 2, 3]

b = ['a', 'b', 'c']

c = [(x, y) for x, y in zip(a, b)]

print(c) # [(1, 'a'), (2, 'b'), (3, 'c')]

上面的代码中,使用列表解析生成了一个新的列表c,它遍历了zip(a, b)得到的元组列表,并将其中的每一个元组展开为x和y两个变量,然后将这两个变量打包成一个新的元组并添加到c中。

3.使用zip_longest()函数

zip()函数只能将两个列表合并起来,如果两个列表中的元素数量不相等,那么它将会把后面的列表中的元素忽略掉。如果我们想要保留这些被忽略的元素,可以使用zip_longest()函数。例如:

a = [1, 2, 3]

b = ['a', 'b']

c = [*zip_longest(a, b, fillvalue=None)]

print(c) # [(1, 'a'), (2, 'b'), (3, None)]

上面的代码中,使用zip_longest()函数将列表a和列表b合并在一起,使用fillvalue参数指定了在填充缺失元素时使用的值。

在Python中使用zip()函数合并两个列表非常简单,只需要将两个列表作为zip()函数的参数,并使用适当的语法将它们组合起来即可。无论使用哪种方法,zip()函数都可以帮助我们完成这个任务,并生成一个新的列表。