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への変換をまとめてみました。
今後他に関連ネタがあれば追記します。


コメント