icon
icon

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

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

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

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

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

 

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

 

田島悠介

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

大石ゆかり

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

田島悠介

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

大石ゆかり

お願いします!

 

目次

1時間でできる無料体験!

 

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の方法を使うことをお勧めします。

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

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

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

監修してくれたメンター

メンターkatoさん

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

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

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

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

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

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する