python列表中enumerate和zip函数用法
enumerate:
定義:enumerate() 函數(shù)用于將一個可遍歷的數(shù)據(jù)對象(如列表、元組或字符串)組合為一個索引序列,同時列出數(shù)據(jù)和數(shù)據(jù)下標(biāo)
例子:
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' list1 =[89,98,00,75,68,37,58,90] for index,item in enumerate(list1):if str(item)!='0':list1[index]=int('19'+str(item))else:list1[index]=int('200'+str(item)) list1.sort()解釋:給數(shù)字加上年份;通過for循環(huán),遍歷出list1中的數(shù)據(jù)和序列號,同時對不是0的元素加上19,給是0的加上200;list1[index]就是列表元素的位置
zip:
定義:zip() 函數(shù)用于將可迭代的對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個元組,然后返回由這些元組組成的對象,這樣做的好處是節(jié)約了不少的內(nèi)存。
我們可以使用 list() 轉(zhuǎn)換來輸出列表。
如果各個迭代器的元素個數(shù)不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
例子:
gem=[["大眾",643518],["奔馳",319163],["寶馬",265051],["福特",252323],["雪鐵龍", 227967],["雷諾",130825],["現(xiàn)代",114878],["奧迪",255300]] fra=[["雪鐵龍", 698985],["雷諾",547704],["大眾",259268],["福特",82633],["現(xiàn)代",77855],["寶馬", 84931],["奧迪",51740],["奔馳",73254]] eng=[["福特",254082],["大眾",203150],["雪鐵龍",177298],["奔馳",172238],["寶馬",172048],["奧迪",143739],["雷諾",102637],["現(xiàn)代",89925]] gem.sort() fra.sort() eng.sort() count = [] for x,y,z in zip(gem,fra,eng):a = x[1]+y[1]+z[1]count.append(str(a)+' '+x[0]) n =zip(gem,fra,eng) print(list(zip(gem,fra,eng))) h,j,k = zip(*zip(gem,fra,eng)) print(list(h),list(j),list(k)) print(count) count.sort()解釋:統(tǒng)計每個車型總產(chǎn)量時,先將列表排序,最后用zip將三個列表壓縮,把值相加;若最后想按照產(chǎn)量排序,新產(chǎn)生的列表需把數(shù)字放在第一位,可以按照數(shù)字排序,文字在第一位是按照文字的ASC碼排序
*zip由于zip是壓縮成了元組,故在解壓輸出時需要用list函數(shù)轉(zhuǎn)換成列表
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' a = [1,2,3] b = [4,5,6] c = [4,5,6,7,8] zipped = zip(a,b) #print(list(zipped)) a1,a2 =zip(*zipped) #a1,a2 = zip(*zip(a,b)) print(list(a1),list(a2))代碼6與7均可
總結(jié)
以上是生活随笔為你收集整理的python列表中enumerate和zip函数用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python输入一个\输出2个\问题
- 下一篇: python中8大排序(原理+代码)