pythonの辞書のキーを変更する方法について、紹介します。
本記事では、以下の内容を紹介しています。
この記事で分かること
- del文を用いて、キーを変更する方法
- popメソッドを用いて、キーを変更する方法
- 内包表記を用いて、キーを変更する方法
- 関数を定義して、キーを変更する方法
スポンサーリンク
辞書のキー(key)の変更方法_その1【del文】
pythonの辞書には、キーを変更するメソッドはありません。
そのため、変更したい要素の値を新しいキーにコピーし、コピー後に変更前の要素を削除する、という方法でキー名を変更します。
はじめに、del文を用いた、辞書のキーの変更方法を紹介します。
del文では、下記のように記述することで、辞書の要素を削除できます。
del文で辞書の要素削除
del 辞書[ ' キー ' ]
以下、del文を用いて、辞書のキーを変更するサンプルコードです。
新しいキー名の要素に、変更前の値を渡した後に、変更前の要素を削除しています。
### del文を用いて、辞書のキー名を変更
fruits_dict = {'Apple':150, 'Banana':200, 'Orange':100}
fruits_dict['Lemon'] = fruits_dict['Orange']
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Orange': 100, 'Lemon': 100}
del fruits_dict['Orange']
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Lemon': 100}
スポンサーリンク
辞書のキー(key)の変更方法_その2【popメソッド】
つぎに、popメソッドを用いた、辞書のキーの変更方法を紹介します。
popメソッドを用いると、辞書の要素を取得すると同時に、値を取得することができます。
popメソッドでは、下記のように記述することで、辞書の要素を削除できます。
popメソッドで辞書の要素削除
値 = 辞書.pop( ' キー ' , default )
「default」は省略可能です。
「default」には、指定したキーが存在しない場合の返り値を指定できます。
以下、popメソッドを用いて辞書のキー名を変更するサンプルコードです。
### popメソッドを用いて、辞書のキー名を変更
fruits_dict = {'Apple':150, 'Banana':200, 'Orange':100}
fruits_dict['Lemon'] = fruits_dict.pop('Orange')
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Lemon': 100}
popメソッドを用いると、del文よりもスッキリ記述できます。
del文や、popメソッドなど、辞書の要素を削除する方法については、下記の記事で紹介しています。
辞書のキー(key)の変更方法_その3【内包表記】
内包表記を用いて、辞書のキーを変更する方法を紹介します。
以下、内包表記を用いて辞書のキーを変更するサンプルコードです。
### 内包表記を用いて、辞書のキー名を変更
fruits_dict = {'Apple':150, 'Banana':200, 'Orange':100}
new_key_assign = {'Apple':'Apple', 'Banana':'Peach', 'Orange':'Lemon'}
new_fruits_dict = {new_key_assign.get(key):value for key, value in fruits_dict.items()}
print(new_fruits_dict)
# {'Apple': 150, 'Peach': 200, 'Lemon': 100}
> new_key_assign = {'Apple':'Apple', 'Banana':'Peach', 'Orange':'Lemon'}
変更前のキー名と、変更後のキー名を辞書型で指定しています。
> new_fruits_dict = { new_key_assign.get(key) : value for key, value in fruits_dict.items( ) }
辞書の内包表記で、キー名を変更した新しい辞書を作成しています。
fruits_dict.items( ) では、itemsメソッドで辞書のキーと値をすべて取得し、1つずつkeyとvalueに渡しています。
new_key_assign.get(key) : value では、getメソッドで変更後のキーを取得し、新たな辞書の要素を作成しています。
なお、itemメソッドやgetメソッドなどを用いて、辞書のキーや値を取得する方法については、下記の記事で紹介しています。
また、内包表記については、下記の記事で紹介しています。
スポンサーリンク
辞書のキー(key)の変更方法_その4【関数定義】
関数を定義して、辞書のキー名を変更する方法について紹介します。
以下、関数を定義して、キー名を変更するサンプルコードです。
### 関数を定義して、辞書のキー名を変更
def change_key(d, old_key, new_key) :
if old_key in d :
d[new_key] = d.pop(old_key)
fruits_dict = {'Apple':150, 'Banana':200, 'Orange':100}
change_key(fruits_dict, 'Peach', 'Lemon')
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Orange': 100}
change_key(fruits_dict, 'Orange', 'Lemon')
print(fruits_dict)
# {'Apple': 150, 'Banana': 200, 'Lemon': 100}
辞書のキー名を変更する関数、change_key を作成しています。
この関数では、辞書に変更前のキー名があるかを判定し、ある場合のみpopメソッドを用いてキー名を変更しています。
スポンサーリンク
まとめ
pythonの辞書のキーを変更する方法について紹介しました。
"辞書のキー名を変更する方法" 自体は覚える必要はありませんが、
要素の削除方法や、要素の取得方法などの基本操作については、どのようなメソッドがあるか、まで把握しておくと便利です。
是非、自分の手を動かして勉強してみてください。
スポンサーリンク