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

如何使用Python中的zip()函数进行列表压缩?

发布时间:2023-06-22 20:11:03

Python中的zip()函数是一个内置函数,用于将多个列表压缩成一个元组列表。该函数的基本语法如下:

zip(iterable1, iterable2, ..., iterableN)

其中,iterable1, iterable2, ..., iterableN是要压缩的列表。

zip()函数对所有的iterable参数进行并行迭代,将每个参数中的对应元素打包成一个元组,然后返回一个由这些元组组成的列表。

如果参数列表的长度不同,则zip()函数会以最短的列表长度为准进行迭代。如果有任一iterable参数可以结果更早的迭代完毕,zip将停止迭代。如果需要完全迭代所有参数,可以使用itertools.zip_longest()。

下面是一个简单的实例,演示如何使用zip()函数将三个列表压缩成一个元组列表:

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]

result = zip(a, b, c)

print(list(result))

输出:

[(1, 4, 7), (2, 5, 8), (3, 6, 9)]

从输出可以看出,zip()函数返回的结果为一个元组列表,其中每个列表项都是由对应的a、b、c列表的元素压缩成的元组。

除了压缩多个列表以外,zip()函数还可以结合映射函数使用,并对压缩后的元组进行操作,例如计算每个元组的和:

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]

result = map(lambda x: sum(x), zip(a, b, c))

print(list(result))

输出:

[12, 15, 18]

从输出可以看出,map()函数对zip()函数返回的元组列表进行操作,计算每个元组的和,返回一个新的列表。

总结:

- Python中的zip()函数可以将多个列表压缩成一个元组列表。

- zip()函数对所有参数进行并行迭代,将每个参数中的对应元素打包成一个元组。

- 如果参数列表的长度不同,则zip()函数会以最短的列表长度为准进行迭代。

- zip()函数还可以结合映射函数使用,并对压缩后的元组进行操作。