Pythonの辞書型とは?(複数の値をまとめて格納)

2022/9/7
執筆者:南波真之

※本記事は吉政創成株式会社「Python学習とキャリアアップ」より寄稿されたコラムとなります。

Pythonの辞書型とは?(複数の値をまとめて格納)

私は現在、Pythonについて勉強を進めています。というのも、AIやデータ分析、アプリケーション開発など様々な状況でPythonは活用されており、テクノロジー業界で活躍していくためには必要だと思っているからです。

と言っても、私はエンジニアではない文系の人間です。

解きながら学ぶ Pythonつみあげトレーニングブック」を使って、Pythonの一番基本的なところを学んでいます。そこで、自分で学習してきて感じたポイントや疑問、皆さんにシェアできることを書いていきます。

今回は、P.130〜P.133の部分になります。テーマはPythonでよく使われるデータ型の1つである。「辞書型」についてです。英語ではdictionaryと呼ばれています。

Pythonの「辞書型」について

Pythonには様々なデータ型があります。具体的には文字列のstr型、整数のInt型など様々です。今回扱う辞書型は、複数の値をまとめて格納できるデータ型です。辞書型以外にも、リストやタプルというデータ型もあります。

まずは辞書型について見ていき、その後でリストやタプルについても見てこうと思います。

辞書型の辞書とは、複数のキーと値の組み合わせをまとめて管理するデータ型です。特徴として、個々の値に重複しないキーを与えることで管理するものです。

作り方としては、「キー: 値」というペアで、複数作成する場合はカンマで区切って並べていきます。全体は波括弧 {} で囲んで作成します。

かんたんな例を作ってみました。

# 辞書型を作成
fruits = {
'Grape': '山梨県',
'Orange': '和歌山県',
'Mango': '沖縄県',
'Yuzu': '高知県',
'Loquat': '長崎県',
}

print(fruits)

↓(出力)

{'Grape': '山梨県', 'Orange': '和歌山県', 'Mango': '沖縄県', 'Yuzu': '高知県', 'Loquat': '長崎県'}

辞書型でキーと値を作ることができました。要素を参照する場合は、キーを指定します。

# キーを指定して出力
print(fruits['Yuzu'])

↓(出力)

高知県

キーと値をそれぞれ作って管理できるのは理解がしやすいですね。

その他の辞書型のデータ変更

作成した辞書に要素を追加や変更するということも可能で、とてもかんたんです。

辞書の変更
fruits['Grape'] = '北海道'

辞書の追加
fruits['Apple'] = '青森県'

出力
print(fruits)

↓(出力)

{'Grape': '北海道', 'Orange': '和歌山県', 'Mango': '沖縄県', 'Yuzu': '高知県', 'Loquat': '長崎県', 'Apple': '青森県'}

キーのGrapeの値が北海道に変更され、新しくAppleというキーで値が青森県という要素が追加されました。

2つの辞書を統合することもできます。

# 辞書型でもう1つ新たに作成し、vegetableという変数に格納
# 3つの要素は新しく作ったもの、キー'Mango'の値は変更
vegetable = {
'Cabbage': '茨城県',
'Onion': '兵庫県',
'Green pepper': '熊本県',
'Mango': '宮崎県',
}

# updateメソッドでvagetableの要素をfruitsに統合
fruits.update(vegetable)
print(fruits)

↓(出力)

{'Grape': '北海道', 'Orange': '和歌山県', 'Mango': '宮崎県', 'Yuzu': '高知県', 'Loquat': '長崎県', 'Apple': '青森県', 'Cabbage': '茨城県', 'Onion': '兵庫県', 'Green pepper': '熊本県'}

このように、新しく追加された要素はそのまま後ろに追加され、同じキーで異なる値の要素は値が更新されました。

その他重要な操作としては、繰り返し処理を活用したい場合です。

inというキーワードの後に辞書を記載すると、その辞書のキーを対象に繰り返し処理を実行します。

partner_monsters = {
'トカゲ': '攻撃力が高い',
'カエル': '防御力が高い',
'カメ': 'バランスがいい',
}

for partner_monster in partner_monsters:
print(partner_monster)

↓(出力)

トカゲ
カエル
カメ

キーではなく値を取りたい場合は、values()メソッドを利用します。

for partner_monster in partner_monsters.values():
    print(partner_monster)

↓(出力)

攻撃力が高い
防御力が高い
バランスがいい

また、すべてのキー:値のペアを取り出したい場合は、itemsメソッドです。

for partner_monster in partner_monsters.items():
    print(partner_monster)

↓(出力)

('トカゲ', '攻撃力が高い')
('カエル', '防御力が高い')
('カメ', 'バランスがいい')

Pythonのリストとタプルについて

Pythonの辞書型について学んできましたが、他のデータ型であるリストとタプルについても比較のため触れておきます。

リストについては、辞書型と同じように複数の要素を格納しておけるデータ型ですがキーと呼んでいた部分が自動的にインデックスとして0から番号が割り振られます。そのため、要素に順番を付けて管理したい場合に使われます。また、リストを作成した後に要素の順番や内容を変えることも可能です。リストは要素をカンマ区切りで全体を角カッコ [] で囲みます。

# リストの作成
cafe_menu = ['ホットコーヒー', 'アイスコーヒー', 'カフェオレ', 'カフェラテ', 'ミックスジュース', 'プリン'] print(cafe_menu)

# リストの要素を変更
## リストの中のインデックス2、つまり3番目の要素を変更
cafe_menu[2] = 'エスプレッソ'
print(cafe_menu)

↓(出力)

['ホットコーヒー', 'アイスコーヒー', 'カフェオレ', 'カフェラテ', 'ミックスジュース', 'プリン']
['ホットコーヒー', 'アイスコーヒー', 'エスプレッソ', 'カフェラテ', 'ミックスジュース', 'プリン']

タプルもリストに近いのですが大きな違いが1度作成したタプルは後から要素の追加、編集、削除ができないという特徴を持っています。変更しないデータや変更されては困るデータにはタプルを使います。タプルは要素をカンマ区切りで全体を丸カッコ () で囲みます。

# タプルの作成
waza = ('ダイナマイトパンチ', 'エクセレントキック', 'フィンガービーム', '拳拳波')
print(waza)

↓(出力)

('ダイナマイトパンチ', 'エクセレントキック', 'フィンガービーム', '拳拳波')

試しに、タプルの要素を変更してみるとエラーが出ました。

# タプルの要素を変更してみる
## リストの中のインデックス1、つまり2番目の要素を変更
waza[1] = 'ゴージャスキック'
print(waza)

↓(出力)

TypeError: 'tuple' object does not support item assignment

このように、複数の要素をまとめて格納できるデータ型には複数ものもがありそれぞれ用途が異なりますので、理解を深めて適切に使いましょう。

データ型を理解してPythonを使いこなそう

今回は、Pythonで複数の要素をまとめて管理する際によく使われる辞書型をメインに紹介してきました。

データ型はまず理解してから使って覚えていく形になります。色々試しながら身につけていけるといいですね。

インターネット・アカデミーは、Python講座が充実しています。Python認定スクールにもなっているため質の高い知識を得ることができ、基礎学習の先にあるそれぞれの目標を目指していくためには良い場所となります。ご興味ある方は各講座のページを覗いてみてください。

Pythonが学べる講座

この記事の執筆者

南波真之

デジタル人材育成・助成金のお役立ち資料をダウンロード

デジタル人材育成や助成金活用のお役立ち資料などをまとめてダウンロードしていただけます。コンサルタントへの無料相談をご希望の方はこちらからお問い合わせください。

たとえばこんな相談ができます
  • DX人材の育成&事例紹介 リスキリングのロードマップ付き
  • デジタル人材育成に使える助成金制度
  • デジタルスキル標準 役割別おすすめ講座
資料ダウンロードはこちら
会社名必須
部署名必須
お名前必須
電話番号必須
メールアドレス必須

個人情報の利用目的についてご同意いただいた場合のみ、「同意して進む」を押してください。

このページの上へ