Python: zip()的使用
生活随笔
收集整理的這篇文章主要介紹了
Python: zip()的使用
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
以前使用zip?,只用過最簡單的,合并兩個列表,沒有仔細(xì)深究過,后來在實驗樓?做實驗的時候,遇到了這樣的一行代碼:
[list(row) for row in zip(*field)]#field 是一個矩陣- 1
有點蒙了, 就查了查了,這倆博客的介紹挺仔細(xì)的?
Python零碎知識(2):強大的zip?,?
Python的zip函數(shù)?
記錄一下吧
zip()的基本使用方法
首先看help(zip):
Help on built-in function zip in module __builtin__:zip(...)zip(seq1 [, seq2 [...]]) -> [(seq1[0], seq2[0] ...), (...)]Return a list of tuples, where each tuple contains the i-th elementfrom each of the argument sequences. The returned list is truncatedin length to the length of the shortest argument sequence. None- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
大意就是:
定義:zip([seql, …])接受一系列可迭代對象作為參數(shù),將對象中對應(yīng)的元素打包成一個個tuple(元組),然后返回由這些tuples組成的list(列表)。若傳入?yún)?shù)的長度不等,則返回list的長度和參數(shù)中長度最短的對象相同。
通俗點就是把幾個列表(0或者1或者多個)的對應(yīng)位置的元素組成新的tuple, 這些新的tuple?構(gòu)成一個list.?
直接用幾個例子來說明:
示例
x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9]xyz = zip(x, y, z)print xyz'''結(jié)果是:''' [(1, 4, 7), (2, 5, 8), (3, 6, 9)] #對應(yīng)元素組成一個新的元組,元組構(gòu)成列表 #---------------------------------------##無參數(shù)時, x = zip() print x#結(jié)果是: []#---------------------------------------##長度不等時,取長度的最小的x = [1, 2, 3] y = ['a', 'b', 'c', 'd'] xy = zip(x, y) print xy#結(jié)果是: [(1, 'a'), (2, 'b'), (3, 'c')]- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
常用的方法
#--------------------------------------##可變參數(shù)傳遞的使用(很常用一種用法),這個可以用矩陣的轉(zhuǎn)置o~如下:實驗 #樓的那代碼就是轉(zhuǎn)置矩陣x = [[1,2,3],[4,5,6],[7,8,9]] y = zip(*x) print y#結(jié)果是: [(1, 4, 7), (2, 5, 8), (3, 6, 9)]#轉(zhuǎn)置就是: map(list, y) #這種也經(jīng)常這樣使用: 壓縮與解壓縮x = [1, 2, 3] y = [4, 5, 6] z = [7, 8, 9]xyz = zip(x, y, z) res = zip(*xyz) print res#結(jié)果可想而知, 壓縮之后 在解壓縮: [(1, 2, 3), (4, 5, 6), (7, 8, 9)]''''''#還有就是字典的構(gòu)造也經(jīng)常使用:x = ['a', 'b', 'c'] y = ['x', 'y', 'z'] z = zip(x, y) d = dict(z) print d#結(jié)果為: {'a': 'x', 'c': 'z', 'b': 'y'}'''''' #------------------------------# #與iter合用:a = [1, 2, 3, 4, 5, 6] b = zip(*([iter(a)] * 2)) print b#結(jié)果是: [(1, 2), (3, 4), (5, 6)] http://blog.csdn.net/shomy_liu/article/details/46968651
總結(jié)
以上是生活随笔為你收集整理的Python: zip()的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 讯飞智能录音笔SR101:考研的温暖陪伴
- 下一篇: 国盾量子等参与中国量子通信行业首批标准编