前書き
zip()関数は、反復可能なオブジェクトをパラメーターとして受け取り、オブジェクト内の対応する要素をタプルにパックしてから、これらのタプルのリストを返すために使用されます。
ps。各イテレーターの要素数に一貫性がない場合、返されるリストの長さは最短のオブジェクトと同じです。*演算子を使用すると、タプルをリストに解凍できます。
例
a =[1,2,3]
b =[4,5,6]
c =[4,5,6,7,8]
zipped =zip(a,b) #タプルのリストとしてパック
# 出力:[(1,4),(2,5),(3,6)]zip(a,c) #要素の数は最短のリストと一致しています
# 出力:[(1,4),(2,5),(3,6)]zip(*zipped) #zipとは逆に、*圧縮は減圧として理解でき、2次元マトリックスに戻ります
[(1,2,3),(4,5,6)]
zip関数は、任意の数(0および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機能の基本的な動作がわかります。
コードは次のように表示されます。
x =[1,2,3]
y =[4,5,6,7]
xy =zip(x, y)
print xy
実行の結果は次のとおりです。
コードは次のように表示されます。
[(1,4),(2,5),(3,6)]
この結果から、zip関数の長さがどのように処理されるかがわかります。
コードは次のように表示されます。
x =[1,2,3]
x =zip(x)
print x
実行の結果は次のとおりです。
コードは次のように表示されます。
[(1,),(2,),(3,)]
この結果から、パラメータが1つしかない場合にzip関数がどのように機能するかがわかります。
コードは次のように表示されます。
x =zip()
print x
実行の結果は次のとおりです。
コードは次のように表示されます。
[]
この結果から、zip関数がパラメーターなしでどのように機能するかを確認できます。
コードは次のように表示されます。
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)]
これは解凍プロセスであると一般に考えられており、その操作メカニズムは次のようになります。
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が分離され、位置パラメーターとして対応する関数に渡されます(対応する関数が無数の位置パラメーターをサポートしている場合)。
コードは次のように表示されます。
x =[1,2,3]
r =zip(*[x]*3)
print r
実行の結果は次のとおりです。
コードは次のように表示されます。
[(1,1,1),(2,2,2),(3,3,3)]
その動作メカニズムは次のとおりです。
[ x]は、要素が1つだけのリストのリストを生成しますx
[ x] * 3はリストのリストを生成し、[x、x、x]の3つの要素があります。
zip(* [x] * 3)の意味は明確です、zip(x、x、x)
これまで、Pythonでのzip関数の使用方法に関するこの記事を紹介しました。Pythonでのzip関数の関連コンテンツについては、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後、ZaLouをさらにサポートしていただければ幸いです。 .Cn!
Recommended Posts