Pythonというプログラミング言語を耳にしたことはありますよね。2010年代に大きく地位を高めたプログラミング言語です。Youtubeで400万回以上再生された「Most Popular Programming Languages 1965 – 2019」が可視化した集計によると、プログラミング言語の人気ランキングにおいて、2010年の時点で6位だったPythonは、2019年の時点で見事に1位の座を射止めています。
Pythonの特徴は、なんといってもその簡潔さ。旧来の言語の数分の1の記述でプログラムが成立するような場合もあるということで、多くの人はその点に魅力を感じているでしょう。
dict型は、辞書型とも呼ばれる型で、キーと値の対応を保持するデータ構造です。dict型自体は様々な言語に登場するデータ型です。Pythonでは、dict型を容易に実装できるとのこと。
ですから今回は、Pythonのdict型について、その書き方や要素の追加法、検索法など最も基本的な部分に的を絞ってお伝えします。
Pythonとは
Python Japanによると、Pythonはプログラムの「読みやすさ・わかりやすさ」をとても重視しつつ、実用的で拡張性を持ったプログラミング言語です。多くの人に支持されたのも、わかりやすさとと実用性を兼ね備えた性質によるといって間違いありません。
Pythonは特に最近では機械学習のツールとして支持され、実際Pythonで記述された数多くのオープンソースライブラリが公開されています。機械学習のプログラムを作ろうとする場合には必須の言語といって差し支えないですし、そうでなくても、常にポピュラーな言語ですから、学んでおいて損はないでしょう。
Pythonの基本的な機能は他の多くの言語と共通しており、今回のテーマであるdict型もその1つです。そのため他の言語の経験があれば、さらに学習は容易かもしれません。
Pythonの辞書(dictionary)型とは、どんな関数のことか
さて、Pythonの辞書(dictionary)型は、キーと値の対応を保持するデータ構造です。
dict型の特徴は、値だけでなくキーを保持するという点です。比較対象としてより簡単でよく用いられるデータ構造である「list型」や「tuple型」は、単に値を保持するデータ構造です。
dict型では新たに値を追加するときには、キーと値を指定します。また、値を呼び出したり変更したりする場合には、キーを指定します。この時、llist型では、何番目の値が体重や年齢なのかを別の方法で記録する必要が生じてしまいますが、dict型ならその必要がありません。
Pythonの辞書型(dictionary)の書き方
さて、dict型の概要について把握しました。ここから、書き方などの具体的な利用法についてお伝えしきます。
dict型はまず、次の方法で生成しましょう。
この方法によって、3つの値を持つdictが生成されました。キーが’key1’のところに対応する値は10、’key2’には20、’key3’には30です。
また、dictクラスのコンストラクタを用いて生成することも可能です。
のように、引数に「キー=値」の形式で指定します。ここでは、初めと同じ内容のdict型オブジェクトを生成しました。
Pythonの辞書型(dictionary)に要素を追加する方法
続いて、Pythonのdict型で新たに要素を追加する場合について説明します。前の節で生成したdict1に要素を追加することを考えましょう。次の書き方で要素を追加します。
いま、dict1に、新たにキーが’key4’、値が40の要素が追加されました。
dict1には、’key4’というキーが存在しなかったため、新たに要素を追加できました。一方、既存のキーを指定した場合には、値を変更できます。続けて、次のように記述したとしましょう。
これによって、’key2’に対応する値は222に変更されました。つまり、dict1の内容は、{‘key1’ : 10, ‘key2’ : 222, ‘key3’ : 30, ‘key4’ : 40}となっています。
Pythonの辞書型(dictionary)で、要素を検索する方法
Pythonのdict型では、キーと値をそれぞれ検索できます。これは、Pythonでdict型を用いる場合には非常に有用な機能です。
まず、キーについて。単にあるキーの存在を確認したい場合には、次のように記述することで可能です。
print(key_exists)
前節までのdict1であれば、第1の記述については、’key1’というキーは存在するのでTrueが出力されます。
では、次の場合も考えましょう。
print(key_exists)
この場合は、第2の記述については‘key123’というキーは存在しないのでFalseが出力されます。
また、キーではなく値も検索できます。これには、values()メソッドを利用しましょう。
print(value_exists)
この場合、10という値は存在するので、Trueが出力されます。逆に、10の代わりに存在しない値を指定すると、Falseが出力されます。
Pythonの辞書型(dictionary)を使う際の注意点
Pythonのdict型を使う場合には、どのキーを使用しているかしっかりと認識しましょう。というのも、それを把握していないと、新たに要素を追加する際に、うっかり既に使用済みのキーを指定してしまうようなことが起こるからです。
既に使用済みのキーを指定すると、もちろん対応する値が更新され、新たな要素は追加されません。これは失敗です。この問題が起こりやすい場面の1つは、キーに意味の無い名前(k1など)を付けているときです。命名に気をつけると、この問題は起こりにくくなります。
対話的にコードを使用している場面であれば、現在のキーをkeys()関数で取得して出力することによって確認することで、問題を回避することができます。
また、例外処理によって対応するという方法もあります。追加するのが正常な動作であり、変更が正常でない場合には、変更を例外処理によって弾くという方法です。そのため、うまくいかない時はこのような方法を試しましょう。
さて、Pythonのdict型について基本的なことを抑えました。
簡明さを重視したプログラミング言語であるPythonでは、dict型の操作もまた簡明です。dict型の生成は、
などの記述によっておこないます。そして、要素の追加は
のように、未使用のキーと値を指定しておこないます。さらに、要素の検索は
10 in dict1.values()
という記述を利用しました。これらの使い方を理解しておけば、dict型を十分に使いこなすことができるでしょう。
dict型はキーを指定するという点が特徴的で、値の取得もしやすく、キーを適切に命名すれば非常に便利です。キーの命名が重要ですから、そこには注意しましょう。
Pythonでも頻出のdict型について理解すれば、皆さんのプログラミングも非常に楽しく快適になっていくことは間違いありません。ぜひ、dict型を活用したプログラムを記述しましょう。