Pythonの辞書オブジェクトの使い方を現役エンジニアが解説【初心者向け】

初心者向けにPythonの辞書オブジェクトの使い方について現役エンジニアが解説しています。辞書とは、キーと値のペアを登録できるデータ構造です。dictメソッドや{}で辞書を初期化することが出来ます。データにはキー名で、キー名はkeys()でアクセスすることが出来ます。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonの辞書オブジェクトの使い方について解説します。

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのPythonオンライン講座の内容をもとにしています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonの辞書オブジェクトの使い方について詳しく説明していくね!

大石ゆかり

お願いします!

 

辞書オブジェクト (dictionary object)とは

辞書とは、キーと値のペアを登録できるデータ構造です。

例えば、文章中で単語の出現回数をカウントするために辞書を用いる場合、単語をキー、出現回数を値とします。登録キー数が増えても、対応する値を高速に参照できることが特徴です。

辞書内でキーは一意です。あるキーAと値Bのペアを登録している状態で、キーAと値Cを登録すると、上書き登録になります。
 

辞書オブジェクト (dictionary object)の使い方

以下のように辞書を初期化します。
dictメソッド、もしくは{}で空の辞書を生成します。初期化時点でキーと値のペアを登録することもできます。
 

d = dict()
d = {}
d = {'abc':0, 'def':1}

 
辞書にキーと値のペアを登録する方法です。
キーの型は任意です(数値、文字列などなど)。ただし、ハッシュ可能オブジェクト(__hash__)であることが条件です。

辞書にキーでアクセスし、値を取り出す方法です。
辞書がキーを含まない場合、KeyError例外が発生します。

 

value = d[key]

 

辞書のキーを全て取り出すには、keysメソッドやforループを使います。
 

keys = d.keys()
for k in d:
  # 変数kで順番にキーを参照できる

 

他の用法については、公式のリファレンスを参照してください。
 

[PR] Pythonで挫折しない学習方法を動画で公開中

実際に書いてみよう

サンプルコード

d = dict()

d['one'] = 1
d['two'] = 2
d['three'] = 3

print(d['one'])

try:
  print(d['four'])
except KeyError:
  print('キーがありません')

for k in d:
  print('%s -> %d' % (k, d[k]))

 

実行結果

1
キーがありません
one -> 1
two -> 2
three -> 3

 

解説

  • はじめにdictメソッドで辞書を初期化
  • 続けてone, two, threeというキーに対し、1,2,3という値を割り当
  • oneというキーで辞書にアクセスし、1という値を取り出せることを確認
  • fourというキーで辞書にアクセス
  • 辞書はfourというキーを含まないので、KeyError例外が発生
  • for文で辞書のキーに順番にアクセス
  • 対応する値を取り出し表示

(注)辞書のキーに順番にアクセスする場合、登録した順になることは保証されません。今回は偶然に登録した順(one, two, three)となりました。

 

監修してくれたメンター

橋本紘希

システムインテグレータ企業勤務のシステムエンジニア。

開発実績: Javaプログラムを用いた業務用Webアプリケーションや、基幹システム用バッチアプリケーションなどの設計構築試験。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

オンラインのプログラミングスクールTechAcademyではPythonを使って機械学習の基礎を学ぶPythonオンライン講座を開催しています。

初心者向けの書籍を使って人工知能(AI)や機械学習について学ぶことができます。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間で習得することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。