python列表中enumerate和zip函数用法

Posted xiaof0725

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python列表中enumerate和zip函数用法相关的知识,希望对你有一定的参考价值。

enumerate:

定义:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标

例子:

1 list1 =[89,98,00,75,68,37,58,90]
2 for index,item in enumerate(list1):
3     if str(item)!=0:
4         list1[index]=int(19+str(item))
5     else:
6         list1[index]=int(200+str(item))
7 list1.sort()

解释:给数字加上年份;通过for循环,遍历出list1中的数据和序列号,同时对不是0的元素加上19,给是0的加上200;list1[index]就是列表元素的位置

zip:

定义:zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

我们可以使用 list() 转换来输出列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

例子:

 1 gem=[["大众",643518],["奔驰",319163],["宝马",265051],["福特",252323],["雪铁龙",    227967],["雷诺",130825],["现代",114878],["奥迪",255300]]
 2 fra=[["雪铁龙",    698985],["雷诺",547704],["大众",259268],["福特",82633],["现代",77855],["宝马",    84931],["奥迪",51740],["奔驰",73254]]
 3 eng=[["福特",254082],["大众",203150],["雪铁龙",177298],["奔驰",172238],["宝马",172048],["奥迪",143739],["雷诺",102637],["现代",89925]]
 4 gem.sort()
 5 fra.sort()
 6 eng.sort()
 7 count = []
 8 for x,y,z in zip(gem,fra,eng):
 9     a = x[1]+y[1]+z[1]
10     count.append(str(a)+ +x[0])
11 n =zip(gem,fra,eng)
12 print(list(zip(gem,fra,eng)))
13 h,j,k = zip(*zip(gem,fra,eng))
14 print(list(h),list(j),list(k))
15 print(count)
16 count.sort()

解释:统计每个车型总产量时,先将列表排序,最后用zip将三个列表压缩,把值相加;若最后想按照产量排序,新产生的列表需把数字放在第一位,可以按照数字排序,文字在第一位是按照文字的ASC码排序

*zip由于zip是压缩成了元组,故在解压输出时需要用list函数转换成列表

1 a = [1,2,3]
2 b = [4,5,6]
3 c = [4,5,6,7,8]
4 zipped = zip(a,b)
5 #print(list(zipped))
6 a1,a2 =zip(*zipped)
7 #a1,a2 = zip(*zip(a,b))
8 print(list(a1),list(a2))

代码6与7均可

以上是关于python列表中enumerate和zip函数用法的主要内容,如果未能解决你的问题,请参考以下文章

eval()函数和zip()函数用法enumerate()

Python for-in Loop常见遍历方法

python(29)强大的zip函数

python:setdefault()zip()enumerate()sorted()

Python---高级函数map, filter, zip, enumerate等的用法

python中enumerate函数的用法