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函数用法的主要内容,如果未能解决你的问题,请参考以下文章
python:setdefault()zip()enumerate()sorted()