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函数转换成列表

猜你喜欢

转载自www.cnblogs.com/XiaoF0725/p/11428489.html