キーのリストと値のリストからdictに要素を同じ順序で追加する効率的な方法はありますか?
今のところ、リスト内の要素に対して for ループを反復処理し、
dictio[key] = val
ペアごとに。組み込み関数はありますか? 私は3.3です。
キーのリストと値のリストからdictに要素を同じ順序で追加する効率的な方法はありますか?
今のところ、リスト内の要素に対して for ループを反復処理し、
dictio[key] = val
ペアごとに。組み込み関数はありますか? 私は3.3です。
はい、使用しますzip()
:
dictio = dict(zip(keys, values))
または.update()
、既存の辞書に項目を追加するために使用します。
dictio.update(zip(keys, values))
このzip()
関数は、2 つの iterable を 1 つのタプルのシーケンスにペアにします。これは両方ともdict()
、dict.update()
喜んでキーと値のペアに変換されます。
>>> keys = ('foo', 'bar')
>>> values = ('spam', 'eggs')
>>> list(zip(keys, values))
[('foo', 'spam'), ('bar', 'eggs')]
>>> dict(zip(keys, values))
{'bar': 'eggs', 'foo': 'spam'}
dict 内包表記を使用できます。
dictio.update({k:v for k,v in zip(keys, values)})