Python zip() 関数
説明
zip()この関数は、反復可能なオブジェクトを引数として、オブジェクト内の対応する要素をそれぞれタプルにまとめ、それらのタプルからなるリストを返します。
各イテレータの要素数が一致しない場合、返されるリストの長さは最短のオブジェクトと同じになります。* 演算子を使用すると、タプルをリストにアンパックできます。
zip メソッドの Python 2 と Python 3 の違い: Python 3.x ではメモリを減らすために、zip() はオブジェクトを返します。リストを表示するには、手動で list() に変換する必要があります。
Python 3 の応用について知りたい場合は、次を参照してください。Python3 zip()。
構文
zip の構文:
zip([iterable, ...])
パラメータの説明:
- iterable -- 1つ以上のイテレータ;
戻り値
タプルのリストを返します。
実例
以下の2つの実例はそれぞれ示していますPython2.xとPython3.x zipの使用方法:
実例 (Python 2.0+)
>>> 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 とは逆に、*zipped はアンパックと見なせ、2次元行列を返します
[(1, 2, 3), (4, 5, 6)]
>>> 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 とは逆に、*zipped はアンパックと見なせ、2次元行列を返します
[(1, 2, 3), (4, 5, 6)]
実例 (Python 3.0+)
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # オブジェクトを返す
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() でリストに変換する
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # 要素数は最短のリストに合わせる
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # zip とは逆に、zip(*) はアンパックと見なせ、2次元行列を返します
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # オブジェクトを返す
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() でリストに変換する
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # 要素数は最短のリストに合わせる
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # zip とは逆に、zip(*) はアンパックと見なせ、2次元行列を返します
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>
Python 組み込み関数