Pythonにおけるdict型データのkeyについて現役エンジニアが解説【初心者向け】

初心者向けにPythonにおけるdict型データのkeyについて現役エンジニアが解説しています。dict型データとはkeyとvalueのペアから構成される辞書型の配列の一種です。Pythonのdictのkeyの書き方やkeyの取得方法、dictの全ての要素のkeyの取得方法などを解説します。

TechAcademyマガジンは受講者数No.1のオンラインプログラミングスクールTechAcademy [テックアカデミー]が運営。初心者向けに解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。

Pythonにおけるdict型データのkeyについて、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

そもそもPythonについてよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

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

大石ゆかり

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

田島悠介

Pythonにおけるdict型データのkeyについて詳しく説明していくね!

大石ゆかり

お願いします!

 

目次

 

dict型データとは

辞書はPythonのデータ構造の一つで、連想配列して記憶している人もいるかもしれません。辞書は、keyとvalueのペアコレクションから構成されます。それぞれのkeyとvalueのペアは、keyと関連する値をマッピングします。

カンマで区切られたkeyとvalueのペアのリストを中括弧 ( { } ) で囲むことで、辞書を定義することができます。コロン ( : ) は、各keyと関連するvalueを分離するために持ち入ります。

なお、辞書型のデータには順番がありません。(リストには順番があります。)変更することが可能です。また、インデックスを用いてデータを取り出すことも可能ですが、dict型のデータを更新するたびに順番が変わることに注意が必要です。

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

keyの使い方

1.keyの使って値を取得する方法は、よく使われるものとして、以下が考えられます。

  • dict[key]で値を取得
  • for key in dict.keys()として、dictに含まれる全てのkeyを試す方法
  • dict.get(key)で値を取得

それでは、それぞれの方法について使用方法をみていきましょう。

1. dict[key]で値を取得

取得したいkeyを指定して値を取得する場合にこの方法が用いられます。ただし、keyがdict内に存在しない場合にはKeyErrorとなってしまうため、keyを文字列で指定する場合には注意が必要です。

2.for key in dict.keys()として、dictに含まれる全てのkeyを試す方法

1の方法と合わせて用いられることが多いですが、dict内に含まれるkeyを全てチェックすることができます。ただし、指定したいkeyが必ず含まれているかはわかりませんので、keyの値についてもチェックする必要があります。

3.dict.get(key)で値を取得

特定のkeyについてのみ値を取得したい場合にこちらを使います。指定したdictの中にkeyが含まれていれば値を、含まれていない場合にはNoneを返します。そのため、keyについて存在の有無をチェックする必要はありません。ただし、値がNoneになる可能性を残したままコードが走り続けますので、Noneとなった場合の処理を記述しておく必要があります。

 

keyを利用してdict型データに特定の値が含まれているか判定してみよう

例1のソースコード

fruits_dict = {'apple': 1, 'orange': 2, 'banana': 3, 'peach': 4, 'lemon': 5, 'water melon': 6}

if fruits_dict['apple'] == 1:
    print('apple: {}'.format(fruits_dict['apple']))
if fruits_dict['pineapple'] == 1:
    print('pineapple: {}'.format(fruits_dict['pineapple']))

 

結果

apple: 1
Traceback (most recent call last):
  File "ex7.py", line 5, in <module>
    if fruits_dict['pineapple'] == 1:
KeyError: 'pineapple'

 

解説

appleはdictの要素と含まれるため、取得することができました。しかし、pineappleはdict内に含まれていないため、エラーを返しました。

例2のソースコード

fruits_dict = {'apple': 1, 'orange': 2, 'banana': 3, 'peach': 4, 'lemon': 5, 'water melon': 6}

for key in fruits_dict.keys():
    if key == 'apple':
        print('apple: {}'.format(fruits_dict['apple']))
    if key == 'pineapple':
        print('pineapple: {}'.format(fruits_dict['pineapple']))

 

結果

apple: 1

 

解説

appleはdictに含まれる要素のため、valueを返しましたが、pineappleは含まれないため、何も表示されませんでした。

要素一つ一つに対して、条件を設定していく場合にはこちらの方法が便利です。

例3のソースコード

fruits_dict = {'apple': 1, 'orange': 2, 'banana': 3, 'peach': 4, 'lemon': 5, 'water melon': 6}

if fruits_dict.get('apple'):
    print('apple: {}'.format(fruits_dict['apple']))
if fruits_dict.get('pineapple'):
    print('pineapple: {}'.format(fruits_dict['pineapple']))

 

結果

apple: 1

 

解説

条件分岐で持ち入りたい場合などに有効なのがgetを使う方法です。

この場合はpineappleが含まれていないので、その場合にはNoneを返します。そのため、存在の確認を利用した条件分岐に非常に役に立ちます。しかし、同じ辞書型データないで、複数の条件分岐に対応させる場合には例2の方法を使うことをお勧めします。

まとめ

dict型データのkeyの使い方についてまとめてみました。

Pythonではよく使う方法となりますので積極的に利用してみてください。

監修してくれたメンター

メンターkatoさん

学生時代に数値解析のためにプログラミングを始める。現在は企業にて専門職として働くかたわら、プログラムを書き業務効率化を図っている。

現在のメイン言語はPython, JavaScript。また、企業内の希望者にPythonのメンターとして基礎から教えている。テックアカデミーではJavaScriptを教える。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

TechAcademyでは、初心者でもPythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプPython講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。