python列表中enumerate和zip函数用法
生活随笔
收集整理的這篇文章主要介紹了
python列表中enumerate和zip函数用法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
enumerate:
定義:enumerate() 函數用于將一個可遍歷的數據對象(如列表、元組或字符串)組合為一個索引序列,同時列出數據和數據下標
例子:
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和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()解釋:給數字加上年份;通過for循環,遍歷出list1中的數據和序列號,同時對不是0的元素加上19,給是0的加上200;list1[index]就是列表元素的位置
zip:
定義:zip() 函數用于將可迭代的對象作為參數,將對象中對應的元素打包成一個個元組,然后返回由這些元組組成的對象,這樣做的好處是節約了不少的內存。
我們可以使用 list() 轉換來輸出列表。
如果各個迭代器的元素個數不一致,則返回列表長度與最短的對象相同,利用 * 號操作符,可以將元組解壓為列表。
例子:
gem=[["大眾",643518],["奔馳",319163],["寶馬",265051],["福特",252323],["雪鐵龍", 227967],["雷諾",130825],["現代",114878],["奧迪",255300]] fra=[["雪鐵龍", 698985],["雷諾",547704],["大眾",259268],["福特",82633],["現代",77855],["寶馬", 84931],["奧迪",51740],["奔馳",73254]] eng=[["福特",254082],["大眾",203150],["雪鐵龍",177298],["奔馳",172238],["寶馬",172048],["奧迪",143739],["雷諾",102637],["現代",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()解釋:統計每個車型總產量時,先將列表排序,最后用zip將三個列表壓縮,把值相加;若最后想按照產量排序,新產生的列表需把數字放在第一位,可以按照數字排序,文字在第一位是按照文字的ASC碼排序
*zip由于zip是壓縮成了元組,故在解壓輸出時需要用list函數轉換成列表
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和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均可
總結
以上是生活随笔為你收集整理的python列表中enumerate和zip函数用法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python输入一个\输出2个\问题
- 下一篇: python中8大排序(原理+代码)