dictionaryについてよく使う、keyとvalue交換手順のまとめ
key value ペアを出力
まず、for loopでkeyとvalueのペアを出力する。
inの後はedict.keys()でも同じ。
>>> edict {'j': 1, 'u': 9, 'b': 2, 'p': 7, 'd': 4, 'z': 5, 'h': 3} >>> for key in edict: ... print(key, edict[key]) ... j 1 u 9 b 2 p 7 d 4 z 5 h 3
出力データをlistに変換
>>> lst = [] >>> for key in edict.keys(): ... lst.append((key, edict[key])) ... >>> lst [('j', 1), ('u', 9), ('b', 2), ('p', 7), ('d', 4), ('z', 5), ('h', 3)]
因みに、dictionary型データをlist()でリスト化すると、keyのリストになる。
>>> list(edict) ['j', 'u', 'b', 'p', 'd', 'z', 'h']
利用可能なtupleを返すデータ.items()でも同様の事が出来る。
>>> lst = [] >>> for kv in edict.items(): ... lst.append(kv) ... >>> lst [('j', 1), ('u', 9), ('b', 2), ('p', 7), ('d', 4), ('z', 5), ('h', 3)]
keyとvalueを入れ替える
このtupleを利用してvalueとkeyを入れ替えたリストを作る。
>>> lst = [] >>> for key, val in edict.items(): ... lst.append([val, key]) ... >>> lst [[1, 'j'], [9, 'u'], [2, 'b'], [7, 'p'], [4, 'd'], [5, 'z'], [3, 'h']]
この考え方を利用して、value, keyの形のdictionaryを作る。
>>> dct = {} >>> edict {'j': 1, 'u': 9, 'b': 2, 'p': 7, 'd': 4, 'z': 5, 'h': 3} >>> for k, v in edict.items(): ... dct[v] = k ... >>> dct {1: 'j', 9: 'u', 2: 'b', 7: 'p', 4: 'd', 5: 'z', 3: 'h'}
以上、dictionary型とlist型のデータ変換から、key=valueからvalue=keyへの変換をまとめてみました。
今後他に関連ネタがあれば追記します。
コメント