Python で辞書のキーを変更する
- Python の辞書で新しいキーを割り当てて古いキーを削除する
-
Python で
pop()
関数を使用する -
for
ループを使用して辞書をトラバースし、Python で辞書のキーを変更する - Python でまったく新しいインスタンスを再構築する
-
Python で
OrderedDict
クラスを使用する -
Python で
Pandas.DataFrame
関数を使用する
この記事では、Python で辞書のキーを変更するためのさまざまな方法を紹介します。
Python の辞書で新しいキーを割り当てて古いキーを削除する
Python で辞書のキーを変更するには、次の手順に従います。
- 古いキーに新しいキーを割り当てます。
- 古いキーを削除します。
これらの手順を示す以下の例を確認してください。
dict_ex[new_key] = dict_ex[old_key]
del dict_ex[old_key]
次のコードは、この方法を示しています。
dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.1] = dict_ex[2]
del dict_ex[2]
print("New dictionary-", dict_ex)
ここでは、キーの値 2
が値 2.1
に置き換えられていることがわかります。更新されたキーと値のペアが辞書の最後に移動したことに注意してください。
出力:
Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.1: 'Febuary'}
Python で pop()
関数を使用する
Python で辞書のキーを変更するには、次の手順を参照してください。
-
pop
機能を使用して古いキーをポップします。この例に従ってください。pop(old_key)
-
ポップされた古いキーに新しいキーを割り当てます。この例に従ってください。
dict_ex[new_key] = dict_ex.pop(old_key)
以下の例はこれを示しています。
dict_ex = {1: "January", 2: "Febuary", 3: "March"}
print("Old dictionary-", dict_ex)
dict_ex[2.2] = dict_ex.pop(2)
print("New dictionary-", dict_ex)
出力:
Old dictionary- {1: 'January', 2: 'Febuary', 3: 'March'}
New dictionary- {1: 'January', 3: 'March', 2.2: 'Febuary'}
ここでは、キーの値 2
が値 2.2
に置き換えられていることがわかります。更新されたキーと値のペアが辞書の最後に移動したことに注意してください。
for
ループを使用して辞書をトラバースし、Python で辞書のキーを変更する
このために、最初にターゲットディクショナリと新しいキー値を含む別のディクショナリを取得します。その後、for
ループを使用して、最終的にすべてのキーを適宜切り替えます。
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print("Old dictionary-", dict_ex)
new_key_assign = {1: 111, 2: 2, 3: 3}
print("New dictionary-")
print(dict([(new_key_assign.get(key), value) for key, value in dict_ex.items()]))
ここでは、キーの値 1
が値 111
に置き換えられていることがわかります。今回は、更新されたキーと値のペアがどのように保持されているかに注意してください。
出力:
Old dictionary- {1: 'Jan', 2: 'Feb', 3: 'Mar'}
New dictionary-
{111: 'Jan', 2: 'Feb', 3: 'Mar'}
Python でまったく新しいインスタンスを再構築する
Python 3.7 以降の辞書では、順序を保持できます。このために、次のように辞書のまったく新しいインスタンスを再構築します。
dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}
{"new_key" if k == "old_key" else k: v for k, v in dict_ex.items()}
これを示す例を次に示します。
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print({"one" if k == 1 else k: v for k, v in dict_ex.items()})
ここでは、キーの値 1
が値 one
に置き換えられていることがわかります。今回は、更新されたキーと値のペアがどのように保持されているかに注意してください。
出力:
{'one': 'Jan', 2: 'Feb', 3: 'Mar'}
Python で OrderedDict
クラスを使用する
Python 3.7 以降のディクショナリでは、ジェネレータ式とともに OrderedDict
を使用して順序を保持できます。
最初に collections
から OrderedDict
をインポートする必要があることに注意してください。次に、OrderedDict
クラスを使用します。
from collections import OrderedDict
dict_ex = {"old_key": "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("new_key" if k == 1 else k, v) for k, v in dict_ex.items())
これがあなたが従うことができる例です。
from collections import OrderedDict
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
OrderedDict(("one" if k == 1 else k, v) for k, v in dict_ex.items())
ここでは、キーの値 1
が値 one
に置き換えられていることがわかります。今回は、更新されたキーと値のペアがどのように保持されているかに注意してください。
出力:
OrderedDict([('one', 'Jan'), (2, 'Feb'), (3, 'Mar')])
Python で Pandas.DataFrame
関数を使用する
Pandas を使用して、Python の辞書のキーを変更できます。まず、pandas
ライブラリをインポートします。
次に、DataFrame
ユーティリティを次のように使用します。
import pandas as pd
old_dictionary = {"old_value": "Jan", 2: "Feb", 3: "Mar"}
new_dictionary = {"new_value": "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([old_dictionary, new_dictionary])
このサンプルプログラムを確認してください。
import pandas as pd
dict_ex = {1: "Jan", 2: "Feb", 3: "Mar"}
print(dict_ex)
new_dict_ex = {11: "Jan", 2: "Feb", 3: "Mar"}
df = pd.DataFrame([dict_ex, new_dict_ex])
print(new_dict_ex)
ここでは、キーの値 1
が値 11
に置き換えられていることがわかります。今回は、更新されたキーと値のペアがどのように保持されているかに注意してください。
出力:
{1: 'Jan', 2: 'Feb', 3: 'Mar'}
{11: 'Jan', 2: 'Feb', 3: 'Mar'}