ページへ戻る

− Links

 印刷 

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

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

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

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

*辞書からリストへ [#k10fa8ff]

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ではイテレータを返すのでリストに変換する必要があります。

*リストやタプルから辞書へ [#xee63d58]

「dict」を使います。

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

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

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

« Prev[3]