文法・環境 辞書

【python】辞書(dict)のキー(key)を変更する方法

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の辞書のキーを変更する方法について紹介しました。

"辞書のキー名を変更する方法" 自体は覚える必要はありませんが、
要素の削除方法や、要素の取得方法などの基本操作については、どのようなメソッドがあるか、まで把握しておくと便利です。

是非、自分の手を動かして勉強してみてください。

スポンサーリンク

-文法・環境, 辞書
-,