zip在python中的使用方法

zip最開始覺得是壓縮解壓之類的……呵呵html

【2】Python的zip函數——frydsh  傳送門函數

[2]

 zip函數接受任意多個(包括0個和1個)序列做爲參數,返回一個tuple列表。spa

 

***********code

 1 x = [1, 2, 3]
 2 y = [4, 5, 6]
 3 z = [7, 8, 9]
 4 xyz = zip(x, y, z)
 5 print xyz
 6 """
 7 運行的結果是:
 8 [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
 9 能夠看作是將三個列向量拼湊在一塊兒合併成矩陣
10  1 4 7
11  2 5 8
12  3 6 9
13 """

***********htm

列向量去長度最短,即當xyz長度不一樣時,截取最短長度,其他捨棄。blog

**********ip

 1  #只有一個參數時
 2  x = [1, 2, 3]
 3  x = zip(x)
 4  print x
 5  """
 6  運行的結果是:
 7  [(1,), (2,), (3,)]
 8  """
 9  
10  #在沒有參數時
11  x = zip()
12  print x
13  """
14  運行的結果是:
15  []
16  """

***************get

u = zip(*xyz)能夠理解爲是對xyz矩陣的轉置。class

在運行zip(*xyz)以前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]di

那麼,zip(*xyz) 結果是[(1, 2, 3), (4, 5, 6), (7, 8, 9)]

*****************

x = [1, 2, 3]
r = zip(* [x] * 3)
print r

運行的結果是:

[(1, 1, 1), (2, 2, 2), (3, 3, 3)]

它的運行機制是這樣的:

[x]生成一個列表的列表,它只有一個元素x

[x] * 3生成一個列表的列表,它有3個元素,[x, x, x]

zip(* [x] * 3)的意思就明確了,zip(x, x, x)

相關文章
相關標籤/搜索