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

Python中使用zip()函数来进行列表压缩的方法是什么?

发布时间:2023-06-08 16:43:22

Python中zip()函数是一个非常重要的函数。它可以接受多个序列作为参数,将它们压缩成一个元组列表并返回。它返回的列表的长度是输入的序列中最短的序列的长度。这是因为zip()函数遍历每一个输入序列,并将相应位置的元素组合在一起。

语法:zip(seq1 [, seq2 [...]])返回一个zip对象,其中每个元素是一个元组

其中:

seq1, seq2, … 以逗号分隔

seq1, seq2, … 可以是任何类型的序列,包括列表,元组,字符串, range, 文件对象, 实现了 __getitem__()和 __len__()方法的对象, 以及迭代器

zip()会将所有序列的长度匹配,儿产生的zip对象中含有元素的数目与最短的输入序列相同

实例1: 使用zip()函数进行两个列表的压缩

supplies = ['pens','paper','staplers','flame-throwers','binders']

quantities = [10,20,30,40,50]

list(zip(supplies,quantities)) # [('pens', 10), ('paper', 20), ('staplers', 30), ('flame-throwers',40), ('binders', 50)]

这里,我们首先定义了两个列表: supplies 和 quantities。接下来,我们使用zip()函数将这两个列表压缩成一个新的列表。新的列表中的每个元素都是一个元组,其中第一个元素是供应品的名称(来自supplies列表),第二个元素是该产品的数量(来自quantities列表)。

实例2: 使用zip()函数压缩多个列表

list1=[1,2,3,4,5]

list2=[6,7,8,9,10]

list3=[11,12,13,14,15]

list(zip(list1,list2,list3)) # [(1, 6, 11), (2, 7, 12), (3, 8, 13), (4, 9, 14), (5, 10, 15)]

这里,我们首先定义3个列表: list1, list2,和 list3。接下来,我们使用zip()函数将这3个列表压缩成一个新的列表。新的列表中的每个元素都是一个元组,其中每个元组包含来自所有输入列表中相应位置的元素。

实例3: 使用zip()函数将两个列表转换为字典

names = ['Larry', 'Moe', 'Curly']

ages = [35, 33, 31]

dict(zip(names, ages)) # {'Larry': 35, 'Moe': 33, 'Curly': 31}

这里,我们首先定义了两个列表: names 和 ages。接下来,我们使用zip()函数将这两个列表压缩成一个新的列表。由于我们想要创建一个字典,我们只需将zip()函数的结果传递给dict()函数即可。

总结:

Python中的zip()函数常用于合并两个以上的列表/元组,当然事实上它可以合并多个列表/元组。zip()函数将元素从不同的序列中打包成一些元组,每个元组中对应的元素位置相同,即将多个列表压缩成一个。

zip()函数的使用非常方便,可以帮助我们处理多个列表并返回一个新的列表。此外,它还可以帮助我们将两个或多个列表转换为字典。