Python 3オブジェクト組合せzip()とロールバック方式*zip詳細

4964 ワード

zipの概要
zipは、複数の反復可能オブジェクトを1つの反復可能オブジェクトに結合し、結合するたびに対応する順序のオブジェクト要素を取り出してメタグループに結合し、最小のオブジェクト内の要素がすべて結合されるまで、残りの他のオブジェクト内の結合されていない要素は破棄されます.
keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)
print(list(d))

サンプル結果:
[('one', 1), ('two', 2), ('three', 3)]
zipによって辞書のような対応するメタセット反復オブジェクトがシミュレートされ、listタイプに変換されたことがわかります.もちろん、反復オブジェクトを取得して真のキー値辞書を生成することができます.
keys = ['one', 'two', 'three']
values = [1, 2, 3]
d = zip(keys, values)

D = {}
for key, value in d:
    print(key, value)
    D[key] = value
print(D)

サンプル結果:
one 1
two 2
three 3
{'one': 1, 'two': 2, 'three': 3}

forループ反復値を用いて辞書に対応するキー値マッピングを完了することができ、Python 3ではD = dict(zip(keys,values))を一言で完了することもできる.
*zip
反復器の組合せの前の状態に戻りたい場合は、*「解凍」で現在「圧縮」されている新しい反復オブジェクトを使用します.

keys = ['one', 'two', 'three', 'four']
values = [1, 2, 3]
d = zip(keys, values)
older = zip(*d)
print(list(older))

解凍の結果:
[('one', 'two', 'three'), (1, 2, 3)]