1. ホーム
  2. python

[解決済み] リスト内包型辞書の作成

2022-03-16 22:07:24

質問

Pythonのリスト内包の構文が好きです。

辞書の作成にも使えるのでしょうか?例えば、キーと値のペアを繰り返し処理することで。

mydict = {(k,v) for (k,v) in blah blah blah}  # doesn't work

解決方法は?

を使用します。 ディクショナリ (Python 2.7 以降)。

{key: value for (key, value) in iterable}


また、よりシンプルなケースや以前のバージョンのPythonを使用する場合は dict コンストラクタを使用します。

pairs = [('a', 1), ('b', 2)]
dict(pairs)                         #=> {'a': 1, 'b': 2}
dict([(k, v+1) for k, v in pairs])  #=> {'a': 2, 'b': 3}

キーと値からなる別々の配列が与えられたら dict のコンストラクタを使用します。 zip :

keys = ['a', 'b']
values = [1, 2]
dict(zip(keys, values))  #=> {'a': 1, 'b': 2}

2) "zip'ped" from two separate iterables of keys/vals
dict(zip(list_of_keys, list_of_values))