Python

【Python】辞書(マップ)の使い方【dict】

この記事では、Pythonの辞書の使い方を解説します。

辞書はマップや連想配列と呼ばれ key と value の2つの値を用いて扱われます。名前(key) と 値(value) を 紐つけることで key から value を呼び出すことができます。

では、辞書の使い方を見ていきましょう❗️

辞書とは?

辞書とは key と value の2つの値を1つの要素として扱うコンテナ です。

key と value を紐付け、key から value にアクセスすることができます。key には、ハッシュ可能な値を指定することができます。

このような key となる値を任意のオブジェクトに対応付けるデータ型のことを マッピング型 と呼びます。

辞書の特徴
  • key と value で1つの要素
  • マッピング型である
  • 連想配列や連想記憶と呼ばれたりする

辞書の生成

辞書を生成するには {} を使います。

変数 = {}

辞書の コンストラクタdict() を使っても宣言できます

変数 = dict()

辞書を初期化するには {} 内に key と value を : で区切って1組の要素とします。複数の要素を記述する場合は ,(カンマ) で区切って記述します。

変数 = {key1: value1, key2: value2, ..., keyN: valueN}

サンプル

試しに辞書を作成して出力してみます。

d = {'key1': 1, 'key2': 2, 'key3': 3}

print(d)
print(type(d))

実行結果

{'key1': 1, 'key2': 2, 'key3': 3}
<class 'dict'>

辞書の使い方

簡単に辞書の使い方を見ていきましょう!

要素の取得

辞書の値は dict[key] で取得することができます。

d = {'name': '田中太郎', 'age': 20, 'gender': '男'}

print(d['name'])
print(d['age'])

実行結果

田中太郎
20

辞書内に存在しない key を指定すると KeyError が発生します。

d = {'name': '田中太郎', 'age': 20, 'gender': '男'}

print(d['from'])

実行結果

Traceback (most recent call last):
  File "/Users/user/Desktop/Python/main.py", line 3, in 
    print(d['from'])
KeyError: 'from'

辞書の要素を取得する方法

要素の変更・追加

dict[key] = value で 指定した key の要素が辞書内に存在していればその要素の value を変更し、存在していなければ新たに追加します。

d = {'name': '田中太郎', 'age': 20, 'gender': '男'}

# 存在する key を指定
d['name'] = '山田花子'
print(d)

# 存在しない key を指定
d['from'] = 'Japan'
print(d)

実行結果

{'name': '山田花子', 'age': 20, 'gender': '男'}
{'name': '山田花子', 'age': 20, 'gender': '男', 'from': 'Japan'}

辞書の要素を変更・追加する方法

要素の削除

del dict[key] で指定した要素を削除することができます。

d = {'name': '田中太郎', 'age': 20, 'gender': '男'}

del d['gender']
print(d)

実行結果

{'name': '田中太郎', 'age': 20}

辞書の要素を削除する方法

要素の並び替え

辞書を並び替えるには sorted()関数 を使います。

d = {'name': '田中太郎', 'age': 20, 'gender': '男'}

sorted_d = sorted(d)
print(sorted_d)

実行結果

['age', 'gender', 'name']

辞書の要素を並び替える方法

長さの取得: len関数

len()関数 を使って長さを取得できます。

len(dict)

サンプル

試しに長さを取得してみます。

d = {'name': '田中太郎', 'age': 20, 'gender': '男'}
print(len(d))

実行結果

3

keyの検索: in演算子

in演算子 を使うことで辞書内に指定した key が存在するか確認できます。

key in dict

サンプル

試しに指定した key が存在するか確認してみます。

d = {'name': '田中太郎', 'age': 20, 'gender': '男'}

# 存在する key
print('name' in d)

# 存在しない key
print('from' in d)

実行結果

True
False

内包表記を使う

内包表記で {} を使うことで戻り値を辞書にすることができます。

辞書名 = {key: value for 変数 in 反復可能オブジェクト}

試しに内包表記で辞書を作成してみます。

d = {i: i * i for i in range(3)}

print(d)

実行結果

{0: 0, 1: 1, 2: 4}

2つのリストから辞書を作成するすることもできます。zip()関数を使うことで 2つのリストを使って辞書を作成できます。

辞書名 = {key: value for key名, value名 in zip(リスト1, リスト2)}

試しに2つのリストを作成し、そのリストから辞書を作成してみます。

keys = ['a', 'b', 'c']
values = [1, 2, 3]

d = {k: v for k, v in zip(keys, values)}
print(d)

実行結果

{'a': 1, 'b': 2, 'c': 3}

要素数が違う場合も試してみましょう!

keys = ['a', 'b', 'c', 'd']
values = [1, 2, 3]

d = {k: v for k, v in zip(keys, values)}
print(d)

実行結果

{'a': 1, 'b': 2, 'c': 3}

少ない要素数に合わせて処理されました!

まとめ

この記事では、Python の辞書の使い方を解説をしました。

今回のおさらい

簡単におさらいしておきましょう!

# 宣言・初期化
d = {'key1': 1, 'key2': 2}

# 要素にアクセス
print(d['key1'])  # 1

# 要素追加
d['key3'] = 3  # {'key1': 1, 'key2': 2, 'key3': 3}

# 要素削除
del d['key1']  # {'key2': 2, 'key3': 3}

# キー検索
'key1' in d  # False
'key2' in d  # True

リストだけでなく用途に合わして辞書などの配列を使うことで、より強固なプログラムを作成できます。辞書は覚えることが多いので少しずつ慣れていきましょう。

それでは今回の内容はここまでです!それではまたどこかで〜( ・∀・)ノ