ページへ戻る

− Links

 印刷 

Python​/辞書型オブジェクトとリストの相互変換 :: NJF Wiki

xpwiki:Python/辞書型オブジェクトとリストの相互変換

辞書型オブジェクトとリストの相互変換方法を紹介します。 使いどころとしては、辞書型は順番を保証しないので、並べ替えしたいときなどにリストに変換してソートする、といった場合です。

辞書型からタプルへの変換は、リストとタプルが相互変換可能なので、リストを経由して行います。リストからタプルへの変換は「Python​/リストとタプル[1]」を参照してください。

辞書からリストへ anchor.png[2] Edit [3]

ver2.7なら「items」を使います。

dictData = {'A':'a','B':'b','C':'c'}

print dictData.items()

結果

[('A', 'a'), ('C', 'c'), ('B', 'b')]

辞書型オブジェクトは順番が保証されないので注意が必要です。私のテスト環境ではBとCが入れ替わりました。

ver3ではitemsはイテレータを返すので、さらにリストに変換します。

print(list(dictData.items()))

結果

[('C', 'c'), ('B', 'b'), ('A', 'a')]

辞書のキーのみの配列を得るなら「keys」、値のみの配列なら「values」を使います。 ver2なら以下のようになります。

キーは

print dictData.keys()

結果

['A', 'C', 'B']

値は

print dictData.values()

結果

['a', 'c', 'b']

これらもpython3ではイテレータを返すのでリストに変換する必要があります。

Page Top

リストやタプルから辞書へ anchor.png[4] Edit [5]

「dict」を使います。

listData = [('A', 'a'), ('B', 'b'), ('C', 'c')]

print dict(listData)

結果

{'A': 'a', 'C': 'c', 'B': 'b'}

タプルからの変換も同様です。


Last-modified: 2017-01-05 (木) 15:45:19 (JST) (2667d) by njf