python開發筆記之zip()函數用法詳解

來源:互聯網
上載者:User

標籤:位置   用法   對象   樣本   瞭解   fun   tar   可迭代對象   順序   

   今天分享一篇關於python下的zip()函數用法。

   zip()是Python的一個內建函數,它接受一系列可迭代的對象作為參數,將對象中對應的元素按順序組合成一個tuple,每個tuple中包含的是原有序列中對應序號位置的元素,然後返回由這些tuples組成的list。若傳入參數的長度不等,則返回list的長度和參數中長度最短的對象相同。在所有參數長度相同的情況下,zip()與map()類似,沒有參數的情況下zip()返回一個空list。

   使用zip反轉字典

     

<span style="font-family:Microsoft YaHei;">>>> m = {‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘d‘: 4}m.items()[(‘a‘, 1), (‘c‘, 3), (‘b‘, 2), (‘d‘, 4)] zip(m.values(), m.keys())[(1, ‘a‘), (3, ‘c‘), (2, ‘b‘), (4, ‘d‘)] mi = dict(zip(m.values(), m.keys())) mi{1: ‘a‘, 2: ‘b‘, 3: ‘c‘, 4: ‘d‘}</span>

  

  利用*號操作符,可以將list unzip(解壓成單獨的序列),基本樣本如官方文檔。

例:

help(zip)Help on built-in function zip in module __builtin__:zip(...)  zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]

   其中 zip([seq1, ...])接受一系列可迭代對象作為參數,將對象中對應的元素打包成一個個元組,然後返回由這些元組組成的列表。若傳入參數的長度不等,則返回列表的長度和參數中長度最短的對象相同。

x=[1,2,3] y=[1,2,3] z=(1,2,3)zip(x,y,z)[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

  

x=(1,2,3,4)y=[1,2,3]zip(x,y) #傳入參數的長度不等,則返回列表的長度和參數中長度最短的對象相同[(1, 1), (2, 2), (3, 3)]

  

x(1, 2, 3, 4)zip(x)[(1,), (2,), (3,), (4,)]

  

zip()[]

  zip()配合*號操作符,可以將已經zip過的列表對象解壓,例如:

  

x=[1,2,3] y=[‘a‘,‘b‘,‘c‘]z=[4,5,6]xyz=zip(x,y,z) xyz[(1, ‘a‘, 4), (2, ‘b‘, 5), (3, ‘c‘, 6)]zip(*xyz)[(1, 2, 3), (‘a‘, ‘b‘, ‘c‘), (4, 5, 6)]

  

x=[5,6,7][x] #[x]產生一個列表的列表,它只有一個元素x[[5, 6, 7]][x]*3 #[x] * 3產生一個列表的列表,它有3個元素,[x, x, x][[5, 6, 7], [5, 6, 7], [5, 6, 7]]x[5, 6, 7] zip(*[x]*3) #zip(* [x] * 3)等價於zip(x, x, x)[(5, 5, 5), (6, 6, 6), (7, 7, 7)]

  

name=[‘song‘,‘ping‘,‘python‘] age=[26,26,27] zip(name,age)[(‘song‘, 26), (‘ping‘, 26), (‘python‘, 27)] for n,a in zip(name,age):...   print n,a...song 26ping 26python 27

   好了以上就是我個人所瞭解的zip()函數用法,今天筆記到此為止了,有什麼更好的建議和意見可以去我網站:圓柱模板  進行留言,謝謝!

 

python開發筆記之zip()函數用法詳解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.