050 Pythonのzip関数
1526 ワード
zip関数は、任意の複数(0個と1個を含む)のシーケンスをパラメータとして受け入れ、tupleリストを返します.具体的な意味は文字で表現しにくいので、直接例を見てください.
1.例1:
実行結果
この結果からzip関数の基本的な動作方式が分かる.
2.例2
この結果からzip関数の長さ処理方式が分かる.
3.例3:
この結果からzip関数が1つのパラメータのみで動作する方法が分かる.
4.例4:
実行結果は次のとおりです.
この結果からzip関数がパラメータなしで動作する方法が分かる.
5.例5:
実行結果は、解凍プロセスです.
注意:関数呼び出しで*list/tupleを使用すると、list/tupleが分離され、位置パラメータとして対応関数に渡されます(対応関数が不定個数の位置パラメータをサポートすることを前提とします)
6.例6:
実行結果は次のとおりです.
1.例1:
x = [1, 2, 3]
y = [4, 5, 6]
z = [7, 8, 9]
xyz = zip(x, y, z)
print (list(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 (list(xy))
:
[(1, 4), (2, 5), (3, 6)]
この結果からzip関数の長さ処理方式が分かる.
3.例3:
x = [1, 2, 3]
x = zip(x)
print (list(x))
:
[(1,), (2,), (3,)]
この結果からzip関数が1つのパラメータのみで動作する方法が分かる.
4.例4:
x = zip()
print (list(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 (list(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 (list(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)