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

zip()函数的用法:合并两个列表

发布时间:2023-06-21 12:08:03

Python中有一个非常有用的函数,叫做zip()。它可以将两个或多个列表合并成一个新的列表。

具体来说,zip()函数会将两个或多个列表按照元素位置进行配对,然后将每个位置上的元素打包成一个元组,最终返回一个由这些元组组成的新的列表。

下面是zip()函数的基本用法:

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
result = zip(list1, list2)
print(list(result))

这个例子中,我们先定义了两个列表,list1和list2,它们分别包含了字母和数字。接着,我们使用zip()函数将这两个列表合并,并将结果保存到一个变量result中。最后,我们打印出result,可以看到它是一个由元组组成的列表:

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

这里的每个元组都由list1和list2的对应位置上的元素组成。例如, 个元组就是由list1的 个元素'a'和list2的 个元素1组成的。

注意,zip()函数会将两个列表长度不同的部分忽略掉。例如,如果我们将上面的例子修改一下:

list1 = ['a', 'b', 'c']
list2 = [1, 2]
result = zip(list1, list2)
print(list(result))

这里list2只有两个元素,和list1的三个元素不匹配。这种情况下,zip()函数会忽略list2中的最后一个元素,输出的结果为:

[('a', 1), ('b', 2)]

实际上,zip()函数不限于只能处理两个列表,它可以同时处理任意多个列表。例如:

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
list3 = ['x', 'y', 'z']
result = zip(list1, list2, list3)
print(list(result))

这里我们定义了三个列表list1、list2和list3,分别包含了字母、数字和另一组字母。接着,我们使用zip()函数将它们合并,并将结果保存到一个变量result中。最后,我们打印出result,可以看到它是一个由元组组成的列表:

[('a', 1, 'x'), ('b', 2, 'y'), ('c', 3, 'z')]

这里的每个元组都由list1、list2和list3对应位置上的元素组成。

最后,需要注意的是,zip()函数返回的结果是一个迭代器,它只能被遍历一次。如果需要多次遍历结果,可以将迭代器转换成列表,然后再进行操作。例如:

list1 = ['a', 'b', 'c']
list2 = [1, 2, 3]
result = zip(list1, list2)
# 将迭代器转换成列表
result_list = list(result)
# 对新的列表进行操作
print(result_list)
print(result_list[::-1])

这里我们先使用zip()函数将list1和list2合并,并将结果保存到一个迭代器result中。接着,我们将result转换成一个列表result_list,然后对result_list进行操作。可以看到,我们先打印出result_list本身,然后再反转它并打印出来。这些操作都是在result_list上进行的,而不是在原始的迭代器result上进行的。