如何使用Python中的zip函数将两个列表按元素合并成一个列表?
发布时间:2023-06-16 11:56:29
zip函数是Python内置函数之一,用于将两个可迭代的对象按照元素进行合并。两个可迭代对象指的是两个列表、元组、集合、字符串等,其元素数量可以不一致。
zip函数的语法如下:
zip(*iterables)
其中,*iterables表示要合并的可迭代对象,zip函数返回一个zip对象,是一个迭代器,需要遍历才能得到合并后的结果,可以通过list()函数转换成列表。
下面以两个列表作为例子,演示如何使用zip函数将两个列表按元素合并成一个列表:
list1 = [1, 2, 3, 4, 5]
list2 = [6, 7, 8, 9, 10]
# 使用zip函数将两个列表按元素合并成一个zip对象
zip_obj = zip(list1, list2)
# 遍历zip对象,将合并后的元素放入新的列表中
merged_list = []
for item in zip_obj:
# item为一个元组,将元组转换成列表后添加到merged_list中
merged_list.append(list(item))
# 打印合并后的列表
print(merged_list)
运行结果如下:
[[1, 6], [2, 7], [3, 8], [4, 9], [5, 10]]
可以看到,两个列表按元素合并后得到了一个新的列表,其中每个元素都是由原来两个列表对应位置的元素组成的一个元组,将元组转换成列表后放入新的列表中。
除了上述的遍历方式,我们还可以使用列表推导式实现同样的效果:
list1 = [1, 2, 3, 4, 5] list2 = [6, 7, 8, 9, 10] # 使用列表推导式将合并后的元素放入新的列表中 merged_list = [list(item) for item in zip(list1, list2)] # 打印合并后的列表 print(merged_list)
运行结果与前面的例子相同。
除了将两个列表按元素合并成一个列表外,zip函数还有其他应用。例如,我们可以通过zip函数快速获取多个列表对应位置的元素,可以将两个列表转换成字典,还可以使用*zip函数将zip对象中的元组分别解压成多个变量。不过这些内容超出了本文的范围,感兴趣的读者可以自行查阅相关资料。
