クルトンのプログラミング教室

Pythonの使い方やPythonを使った競技プログラミングの解法などを解説しています。

dictionary(辞書)の使い方【Python】

こんにちは、クルトンです!

この記事ではdictionary(辞書)の使い方を解説します。

この記事だけでもdictionaryの使い方は分かりますが、listを知っていた方が確実にこの記事は理解しやすいです。

もしlistの使い方を知らなければこの記事を読むことをお勧めします。

t.co

dictionaryとlistの違い

listでデータを管理したいとします。

例として、とある人についてのデータをリストにまとめるとします。

[170, 65, 'AB', ...]  #[身長(cm), 体重(kg), 血液型, ...]


このようなリストを作った時に、データに対応するインデックスの番号を覚えておくのは大変です。


...血液型は何番目の要素だったっけ?


このようなことにならないために、dictionaryを用います。

dictionaryは簡単に言うと、「インデックス番号の代わりに、意味の分かる見出しを用いたlist」のことです。

dictionaryを用いることで、'blood_type'などの意味のある文字列で要素を指定できるようになります。

では早速、具体的な使い方を見ていきましょう!


dictionaryの使い方

{キー0:値0, キー1:値1, キー2:値2, ...}

dictionaryの見出しは「キー」と呼ばれます。dictionaryでは、キーと値がセットで一つの要素になります。

また、dictionaryは波括弧「{}」の間に要素をコンマ「,」で区切って並べることで定義できます。

その際、キーと値は、コロン「:」を使って区切ります。


要素の取り出し方

ディクショナリ名[キー]

要素に対応するキーを指定することで、要素を取り出すことができます。
インデックス番号がキーになっただけで、リストにとてもよく似ています。

コード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

print(D['blood_type'])

出力結果

AB

また、dictionaryの持つ要素の順番は保存されます(Python3.6以降)。


要素の書き換え

キーを使って要素を指定し、代入することで要素を書き換えることができます。

コード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

print(D['weight'])

D['weight'] = 60  # 体重を60kgに変える

print(D['weight'])

出力結果

65
60



要素の削除

del文を使うことで要素を削除することができます。
このとき、削除したい要素をキーを使って指定します。

コード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

del D['weight']  # 体重の要素を削除する

print(D)

出力結果

{'height': 170, 'blood_type': 'AB'}



要素の追加

dictionaryでは、存在しないキーに値を代入することで要素を追加することができます。

コード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

D['age'] = 20  # 年齢を追加する

print(D)

出力結果

{'height': 170, 'weight': 65, 'blood_type': 'AB', 'age': 20}



キーの存在確認

dictionaryに特定のキーが含まれているか調べるにはin演算子を用います。
in演算子はキーがdictionaryに含まれていれば「True」を、含まれていなければ「False」を返します。

コード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

print('blood_type' in D)

print('age' in D)

出力結果

True
False



キーを使ったループ

dictionaryはfor文を使ってキーを一つずつ取り出すことができます。
for文の使い方は以下の記事で説明しています。

kuruton.hatenablog.com


コード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

for key in D:
    print(key)

出力結果

height
weight
blood_type

このようにキーを前から順番に取り出すことができます。

また、keys(),values(),items()などのメソッドとlist関数を合わせて用いることで、キーや値のリストを得ることができます。

コード

D = {'height':170, 'weight':65, 'blood_type':'AB'}
print(list(D.keys()))  # キーのリスト
print(list(D.values()))  # 値のリスト
print(list(D.items()))  # キーと値をまとめたリスト

出力結果

['height', 'weight', 'blood_type']
[170, 65, 'AB']
[('height', 170), ('weight', 65), ('blood_type', 'AB')]

また、keys(),values(),items()などのメソッドは、for文と組み合わせて用いることもあります。
このときは、リスト関数を使う必要はありません

keysメソッドを使ったコード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

for key in D.keys():
    print(key)

出力結果

height
weight
blood_type


valuesメソッドを使ったコード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

for value in D.values():
    print(value)

出力結果

170
65
AB


itemsメソッドを使ったコード

D = {'height':170, 'weight':65, 'blood_type':'AB'}

for key, value in D.items():  #keyとvalueを両方受け取る
    print(key, value)

出力結果

height 170
weight 65
blood_type AB


itemsメソッドは引数が二つあるので注意しましょう!


今回はdictionaryの使い方について解説しました。

dictionaryのメソッドはとても便利なので、しっかり練習して使いこなせるようになりましょう!

ではまたお会いしましょう!さようなら~