如何使用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()函数还可以结合映射函数使用,并对压缩后的元组进行操作。
