1: 2017-01-05 (木) 13:16:46 njf[4] [5] [6] | 現: 2017-01-05 (木) 23:45:19 njf[4] [7] [8] | ||
---|---|---|---|
Line 1: | Line 1: | ||
辞書型オブジェクトとリストの相互変換方法を紹介します。 | 辞書型オブジェクトとリストの相互変換方法を紹介します。 | ||
+ | 使いどころとしては、辞書型は順番を保証しないので、並べ替えしたいときなどにリストに変換してソートする、といった場合です。 | ||
- | タプルへの変換は「[[Python/リストとタプル]]」を参照してください。 | + | 辞書型からタプルへの変換は、リストとタプルが相互変換可能なので、リストを経由して行います。リストからタプルへの変換は「[[Python/リストとタプル]]」を参照してください。 |
*辞書からリストへ [#k10fa8ff] | *辞書からリストへ [#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'} | ||
+ | |||
+ | タプルからの変換も同様です。 |
(This host) = https://njf.jp