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

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

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

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

今回は、P.130〜P.133の部分になります。

テーマはPythonでよく使われるデータ型の1つである。「辞書型」についてです。英語ではdictionaryと呼ばれています。

目次

Pythonの「辞書型」について

Pythonには様々なデータ型があります。具体的には文字列のstr型、整数のInt型など様々です。このあたりについて詳しく知りたい方は、こちらの記事もご覧ください。

(参考: Pythonの基礎、4つのデータ型と型変換

今回扱う辞書型は、複数の値をまとめて格納できるデータ型です。辞書型以外にも、リストやタプルというデータ型もあります。

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

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

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

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

# 辞書型を作成
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の基礎からDjangoフレームワークを使ったWebアプリケーションを作りたい方向けの「Python講座」

Pythonを活用したAIプログラミング、機械学習を実装したい方向けの「AIプログラミング講座」

※上記の講座は「解きながら学ぶ Pythonつみあげトレーニングブック」を基にした研修コースではありません。

良い記事だなって思ったら、是非シェアをお願いします!
  • URLをコピーしました!
  • URLをコピーしました!
目次