Python入門【ディクショナリ(辞書型)の使い方】

こんにちは、ミナトです。

以前の記事でリストの基本的な使い方を紹介しました。

Python入門【リストの使い方】

2021年6月13日

今回はリストと同じように複数のデータをまとめて管理できるディクショナリについて紹介します。

前回リストの使い方を学んだけど、他にも複数のデータを管理するデータ型はあるの?
ディクショナリ(辞書型)というデータ型があるで!
ディクショナリはキーと値でデータを管理できるから性質が異なるデータをまとめて管理する際に便利やで!
今回はディクショナリについて解説するな😆
以下のような方を対象としています
  • ディクショナリの使い方を知りたい
  • Pythonでプログラミングを学びたい

ディクショナリの使い方

ディクショナリ(辞書型)とは?

ディクショナリは、リストと同じように複数の要素を管理できるデータ型で「キー: 値」という形式でデータを保持します。

リストの場合はインデックスで情報を管理しているので、要素を取得する際にはどの順番でデータが格納されているか分かっている必要がありました。

データをインデックス(数値)ではなく、ラベルで管理した方が便利だというケースもあります。

例えば、名前、年齢など属性の異なるデータをまとめて管理している際に、「name」、「age」などラベルを指定してデータを取得できると便利ですよね。

そこで、キーと値でデータを管理できるディクショナリを用います。

ディクショナリの定義

ディクショナリは以下のように{}を用いて定義します。

\{キー: 値, キー: 値 ・・・\}
d = {'name': 'Yamada', 'age': 20, 'from': '北海道'}
print(d)
print(type(d))

## 出力
{'name': 'Yamada', 'age': 20, 'from': '北海道'}
<class 'dict'>

ディクショナリの要素の取得

要素の取得は以下のようにキーを指定します。

変数名['キー']
d = {'name': 'Yamada', 'age': 20, 'from': '北海道'}
name = d['name']
print(name)

## 出力
Yamada

また、 getメソッドを利用して要素を取得することも可能です。

d = {'name': 'Yamada', 'age': 20, 'from': 'Tokyo'}
d2 = d.get('age')
print(d2)

## 出力
20

popメソッドを利用して、値を取得することもできます。popメソッドを利用して値を取得すると元の変数からは値が削除される点に注意してください。

d = {'name': 'Yamada', 'age': 20, 'from': 'Tokyo'}
d2 = d.pop('age')
print(d2)
print(d)

## 出力
20
{'name': 'Yamada', 'from': 'Tokyo'}

ディクショナリの要素の追加

要素を追加する場合は、未定義の新しいキーを指定して値を代入します。

d = {'name': 'Yamada', 'age': 20}
print(d)
d['from'] = 'Tokyo'
print(d)

## 出力
{'name': 'Yamada', 'age': 20}
{'name': 'Yamada', 'age': 20, 'from': 'Tokyo'}

ディクショナリの要素の変更

要素を追加する場合は、既存のキーを指定して値を代入します。

d = {'name': 'Yamada', 'age': 20}
print(d)
d['age'] = 25
print(d)

## 出力
{'name': 'Yamada', 'age': 20}
{'name': 'Yamada', 'age': 25}

ディクショナリの要素の削除

ディクショナリから要素を削除するにはdel文を利用します。

d = {'name': 'Yamada', 'age': 20}
print(d)
del d['age']
print(d)

## 出力
{'name': 'Yamada', 'age': 20}
{'name': 'Yamada'}

ディクショナリのコピー

ディクショナリのコピーを作成する場合はcopyメソッドを利用します。

ディクショナリを扱う上での注意点として、ディクショナリを格納した変数を別の変数に代入した場合、値のコピーが代入されるのではなく、元のディクショナリのアドレス(メモリ上の位置)を渡すことになります。これを参照渡しといいます。

そのまま新しい変数の値を書き換えると元の値を書き換えてしまうので注意が必要です。

このような問題がおこらないように、値のコピーを作成するにはcopyメソッドを利用します。

d1 = {'name': 'Yamada', 'age': 20}
d2 = d1.copy()
d2['name'] = 'Kimura'
print(d1)
print(d2)

## 出力
{'name': 'Yamada', 'age': 20}
{'name': 'Kimura', 'age': 20}

ディクショナリのキーの確認

ディクショナリ内の全てのキーを取得するにはkeysメソッドを利用します。

d = {'name': 'Yamada', 'age': 20, 'from': 'Tokyo'}
print(d.keys())

## 出力
dict_keys(['name', 'age', 'from'])

ディクショナリの値の確認

ディクショナリ内の全てのキーを取得するにはvaluesメソッドを利用します。

d = {'name': 'Yamada', 'age': 20, 'from': 'Tokyo'}
print(d.values())

## 出力
dict_values(['Yamada', 20, 'Tokyo'])

ディクショナリを空にする

ディクショナリを空にするにはclearメソッドを利用します。

d = {'name': 'Yamada', 'age': 20, 'from': 'Tokyo'}
d.clear()
print(d)

## 出力
{}

まとめ

今回はディクショナリの操作方法について確認しました。

Pythonで複数のデータをまとめて管理する場合、ディクショナリを利用できます。

ディクショナリを利用するとデータをキーと値の形式で管理できるので、性質の異なる複数のデータを管理する際に便利です。また、多くの便利なメソッドが用意されており、効率的に操作できます。

ディクショナリの操作もPythonでプログラミングを行う上で頻繁に利用しますので、繰り返し実装し、慣れるようにしてください。

最後まで読んでいただき、ありがとうございます。

この記事が、「面白いな」、「勉強になったな」という方は、ぜひ、SNSでシェアしていただけると嬉しいです。