今回は、ディクショナリーのキーの名前を変更する方法について書いていきます。
I'll write about "key-name change of a dictionary ", in python" on this page.
■ 古い要素を削除し、新たな要素を追加する
Delete old factors and add new factors
>>> # delの使用
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>>
>>> d["key10"] = d["key1"]
>>>
>>> del d["key1"]
>>>
>>> print(d)
{'key2': 2, 'key3': 3, 'key10': 1}
>>> # pop()の使用
>>> # pop():要素を削除+そのキーの値取得が可能
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>>
>>> print(d.pop("key1"))
1
>>>
>>> print(d)
{'key2': 2, 'key3': 3}
>>> # del文よりもシンプルに記載が可能
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>>
>>> d ["key10"] = d.pop("key1")
>>>
>>> print(d)
{'key2': 2, 'key3': 3, 'key10': 1}
>>> # 注意:デフォルトの状態では、第一引数に存在しないキーを指定するとエラーになる
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>>
>>> print(d.pop("key10"))
Traceback (most recent call last):
File "<pyshell#36>", line 1, in <module>
print(d.pop("key10"))
KeyError: 'key10'
>>> # 第二引数の値を指定の場合、エラーにならない
>>>
>>> print(d.pop('key10', None))
None
>>>
>>> print(d)
{'key1': 1, 'key2': 2, 'key3': 3}
■ キーの名前を変更する関数の定義
Define a function when a key-name is changed
>>> # pop()により、以下の関数定義ができる
>>>
>>> def change_dict _key(d, old_key, new_key, default_value=None):
SyntaxError: invalid syntax
>>> def change_dict_key(d, old_key, new_key, default_value=None):
d[new_key] = d.pop(old_key, default_value)
>>> d = {"key1":1, "key2":2, "key3":3}
>>> change_dict_key(d, "key1", "key10")
>>>
>>> print(d)
{'key2': 2, 'key3': 3, 'key10': 1}
>>> # 存在しないキーを指定すると、第三引数に指定の値が追加される
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>> change_dict_key(d, "key10", "key100")
>>>
>>> print(d)
{'key1': 1, 'key2': 2, 'key3': 3, 'key100': None}
>>>
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>> change_dict_key(d, "key10", "key100", 100)
>>>
>>> print(d)
{'key1': 1, 'key2': 2, 'key3': 3, 'key100': 100}
>>> # 補足:既存のキーの値を残す場合、setdefault()を使う
>>>
>>> def change_dict_key_setdefault(d, old_key, new_key, default_value=None):
d.setdefault(new_key, d.pop(old_key, default_value))
>>> d = {"key1":1, "key2":2, "key3":3}
>>> change_dict_key_setdefault(d, "key1", "key2")
>>>
>>> print(d)
{'key2': 2, 'key3': 3}
>>> # 新規のキーが既存のキーでない場合
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>> change_dict_key_setdefault(d, 'key1', 'key10')
>>>
>>> print(d)
{'key2': 2, 'key3': 3, 'key10': 1}
>>>
>>> d = {"key1":1, "key2":2, "key3":3}
>>> change_dict_key_setdefault(d, "key10", "key100")
>>>
>>> print(d)
{'key1': 1, 'key2': 2, 'key3': 3, 'key100': None}
随時に更新していきますので、
定期的な購読をよろしくお願いします。
I'll update my article at all times.
So, please subscribe my articles from now on.
本記事について、
何か要望等ありましたら、気軽にメッセージをください!
If you have some requests, please leave some messages! by You-Tarin
また、「Qiita」へ投稿した内容は、随時ブログへ移動して行きたいと思いますので、よろしくお願いします。