前言
檢視python**的時候看到zip函式,不理解其內容,看到一篇部落格講的很簡單明瞭,直接拿過來學習啦~
zip解析
zip函式接受任意多個(包括0個和1個)序列作為引數,返回乙個tuple列表。具體意思不好用文本來表述,直接看示例:
1.示例1:
x = [1, 2, 3]
y= [4, 5, 6]
z= [7, 8, 9]
xyz=zip(x, y, z)print(xyz)
執行結果:
[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
從這個結果可以看出zip函式的基本運作方式。
2.示例2:
x = [1, 2, 3]
y = [4, 5, 6, 7]
xy = zip(x, y)
print xy
執行的結果是:
[(1, 4), (2, 5), (3, 6)]
從這個結果可以看出zip函式的長度處理方式。
3.示例3:
x = [1, 2, 3]
x = zip(x)
print x
執行的結果是:
[(1,), (2,), (3,)]
從這個結果可以看出zip函式在只有乙個引數時運作的方式。
4.示例4:
x = zip()
print x
執行的結果是:
從這個結果可以看出zip函式在沒有引數時運作的方式。
5.示例5:
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
u = zip(*xyz)
print u
執行的結果是:
[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
一般認為這是乙個unzip的過程,它的執行機制是這樣的:
在執行zip(*xyz)之前,xyz的值是:[(1, 4, 7), (2, 5, 8), (3, 6, 9)]
那麼,zip(*xyz) 等價於 zip((1, 4, 7), (2, 5, 8), (3, 6, 9))
所以,執行結果是:[(1, 2, 3), (4, 5, 6), (7, 8, 9)]
注:在函式呼叫中使用*list/tuple的方式表示將list/tuple分開,作為位置引數傳遞給對應函式(前提是對應函式支援不定個數的位置引數)
6.示例6:
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)
注意:不同版本的python的相容性問題及語法問題;參考完
更新python版本
wget 解壓檔案 test localhost tar zxvf python 2.7.11.tar.tgz test localhost cd python 2.7.11 test localhost python 2.7.11 su 口令 root localhost python 2.7.1...
Python語法更新
1.不可變的資料型別,不能賦值 python3 中有六個標準的資料型別 python3 的六個標準資料型別中 2.is和 的區別 先下定論,is和 的關聯 x 1 y 1.0 z 1 0jx y y z x z 全部為true x is y x is z x is y 全部為false print ...
Python學習 持續更新
先立個flag 2017 10 13 time 2017 10 15 今天花時間搭好了環境,寫了幾個print語句。實際上一臉懵逼,還不太清楚python的整個結構。說實話我找不到類似c語言裡面的.c h檔案這樣的。對整個結構都不太清楚,也沒找到.py檔案,實在是不清楚。哦原來是建立檔案的時候錯了 ...