【Python独学】辞書に要素を追加・削除する
複数の値を1つにまとめて扱うことが出来るデータ形式の一つに、辞書と呼ばれるものがあります。
今回は、辞書に要素を追加・削除する方法を紹介します。
追加・更新について
辞書を定義した後でも、後からキーの追加・値の更新が可能です。
では、一つずつ確認していきましょう。
・辞書にキーを追加する
次のような、ある学生についての名(first_name)・姓(last_name)・学年(grade)がキーとなっている辞書があるとします。
student_dict = {"first_name":"Ichiro", "last_name":"Suzuki", "grade":3}
この辞書に、キーとして組(class)を、値として”B”の要素を追加してみます。
追加するには、次のような書式で行います。
辞書[キー] = 値
それでは実際に追加してみましょう。
student_dict = {"first_name":"Ichiro", "last_name":"Suzuki", "grade":3} student_dict["class"] = "B" print(student_dict) #print()関数で辞書の内容の確認
{‘first_name’: ‘Ichiro’, ‘last_name’: ‘Suzuki’, ‘grade’: 3, ‘class’: ‘B’}
ちなみに、7行目のようにprint関数で辞書名を指定すると、辞書の内容を表示することができます。
また、この方法で、空の辞書を最初に定義してからキーを順番に追加していくことが出来ます。
student_dict = {} #空の辞書の定義 student_dict["first_name"] = "Ichiro" #キーと値を順次追加 student_dict["last_name"] = "Suzuki" student_dict["grade"] = 3 student_dict["class"] = "B" print(student_dict)
{‘first_name’: ‘Ichiro’, ‘last_name’: ‘Suzuki’, ‘grade’: 3, ‘class’: ‘B’}
最初に空の辞書を定義し後からキーと値を順番に追加していく場合もプログラムによってはあるので、上記のような動作も覚えておきましょう。
・辞書の値を更新する
辞書では、値の更新も行うことができます。
tudent_dict = {"first_name":"Ichiro", "last_name":"Suzuki", "grade":3} student_dict["last_name"] = "Matsui" #キー"last_name"の値を、"Suzuki"から"Matsui"に更新 print(student_dict)
{‘first_name’: ‘Ichiro’, ‘last_name’: ‘Matsui’, ‘grade’: 3}
上記は値の更新であってキー名の更新ではないので、注意しましょう。
※辞書では、存在しているキー名を変更することはできません。その場合は、新しい辞書を定義する必要があります。
・新しい辞書でキーの値の更新をする
update()という関数を使用すると、既存の辞書に対して、新しい別の辞書で値を更新することが可能です。
なお、新しい別の辞書に既存の辞書には存在していないキー(と値)があると、そのキー(と値)も追加されます。
student_dict = {"first_name":"Ichiro", "last_name":"Suzuki", "grade":3} new_dict = {"grade":4,"class":"B"} #更新用の辞書 student_dict.update(new_dict) #update()で辞書の更新 print(student_dict)
{‘first_name’: ‘Ichiro’, ‘last_name’: ‘Suzuki’, ‘grade’: 4, ‘class’: ‘B’}
実際のプログラムでも『項目が追加になった』『既存の項目の値が変わった』ということもあります。
そのような場合には新しく辞書を定義し直すという方法以外にも上記update()のように辞書の更新を行うような便利な方法もある、ということは頭の片隅に入れておきましょう。
削除について
辞書から要素(キーとその値)を削除するには、del文と呼ばれるものを使用します。
書式は次の通りです。
del 辞書[キー]
次の例では、キー”grade”の要素を削除しています。
student_dict = {"first_name":"Ichiro", "last_name":"Suzuki", "grade":3} del student_dict["grade"] #del文の使用 print(student_dict)
{‘first_name’: ‘Ichiro’, ‘last_name’: ‘Suzuki’}
辞書からキー名”grade”の要素が無くなっていることがわかりますね。
上記のdel文は個別に辞書の要素を削除するものですが、要素を全て削除するclear()という関数もあります。
次の例では、辞書内の全ての要素を削除しています。
student_dict = {"first_name":"Ichiro", "last_name":"Suzuki", "grade":3} student_dict.clear() #clear()の使用 print(student_dict)
{}
辞書の要素(キーと値)が無くなっているだけですので、辞書自体の削除ではないので注意しましょう。
以上、辞書に要素を追加・削除する方法の説明でした。
まとめ
辞書では、要素(キーと値)の追加、削除をすることが可能です
値の更新は可能ですが、キー名の更新はできません。
確認問題
辞書の要素を変更することに関して、誤っている記述を選びなさい(2つ)。
①辞書は、値を更新することが可能
②辞書は、del文で要素(キーとその値)を削除することが可能
③辞書は、キー名を更新することが可能
④辞書は、別の辞書で値の更新及びキーの追加が可能
⑤辞書は、clear()関数で辞書自体を削除可能
答えは次回の記事の最後に!
→【Python連載】辞書の要素にアクセスする
前回の確認問題の回答例
前回の記事はこちら→【Python連載】辞書の基本的な作成方法
(1)辞書の書式について、正しいものを選択しなさい(一つ)。
①(キー1 : 値1 , キー2 : 値2 , キー3 : 値3, ・・・)
②{キー1 : 値1 , キー2 : 値2 , キー3 : 値3, ・・・}
③(値1 : キー1 , 値2 : キー2 , 値3 : キー3, ・・・)
④{値1 : キー1 , 値2 : キー2 , 値3 : キー3, ・・・}
(2)辞書の作成時の注意点について、正しい記述を選びなさい(一つ)。
①要素の並び順(インデックス番号)を使用して値を取り出すことが可能
②一つの辞書に同じキー名が存在してはいけない
③キーには、文字や数値以外にリストも使用できる
・以下は解答です。
(1)
解答は②です。
①③は、括弧がリストで使用する括弧()になっています
④は、キーと値の順番が異なります。
(2)
①は誤りです。辞書には要素の並び順という考えはないので、キーで値を取り出します。
③は誤りです。キーにはイミュータブルな値しか取ることが出来ません。リストはミュータブルです。