09. ディクショナリ(Dictionary)

PythonにおけるDictionary(辞書)の使い方

更新日:

dictionary(辞書)は、基本的にはリストと同じような構造ですが、キーと呼ばれる値と各要素の値をセットで1つの要素として持つことができるのが特徴です。

キーと紐付けて値を登録することで、年度をキーに売上を登録するなど、取り出しやすいかたちでデータを格納することができます。

 

動画教材紹介私(清水 義孝)が作成したコース「PythonでWebスクレイピング・クローリングを極めよう!(Scrapy、Selenium編)」(Udemyへのリンク)が新発売!
新発売を記念して、10月29日まで67%オフ(1,200円最安値)大セール中!!!

Pythonのディクショナリの特徴と定義方法

ディクショナリには以下の特徴があります。

  • リストやタプルと同じく複数の要素から構成されています。但し、要素間には順序はなく、インデックスで要素を取り出すことはできません。代わりに各要素にはキーと呼ばれる値と合わせて登録します。
  • ディクショナリの記述は、括弧{}で囲んだ中に数値や文字列などの値とキーのペアで、カンマ','で区切って記述します。
dictionary = {キー1:値1, キー2:値2, キー3:値3, ……}
  • 値はキーを利用して検索します。
dictionary[キー]
  • ディクショナリの値にタプル、配列を格納することもできます。

 

それでは実際にディクショナリに値を格納し、検索している例を見ていきましょう。

例1 年度毎の売上をディクショナリdict_salesに格納した例は以下になります。年度をキーに売上を登録しています。例えばFY2012は、年度'FY2012'をキーとして、:(コロン)の後に売上67を登録しています。

In [1]: dict_sales = {'FY2010':32, 'FY2011':48, 'FY2012':67, 'FY2013':75, 'FY2014':92, 'FY2015':103}

 

先ほどディクショナリdict_salesに登録した年度毎の売上の内、'FY2012'の値を確認するには、dict_sales['FY2012']と入力します。売上67が正しく表示されたことがわかります。

In [2]: dict_sales['FY2012']
Out[2]: 67

 

例2 ディクショナリの値には、リストやタプルも格納することができます。例えば、FY2012の月別の売り上げを格納したリストlist_monthly_sales_FY2012を定義し、ディクショナリdict_salesに対してキー'FY2012'と合わせて登録してみます。

In [3]: list_monthly_sales_FY2012 = [3, 2, 7, 2, 6, 4, 8, 11, 6, 7, 3, 8]
...: dict_sales = {'FY2010':32, 'FY2011':48, 'FY2012':list_monthly_sales_FY2012, 'FY2013':75, 'FY2014':92, 'FY2015':103}

 

'FY2012'の値を確認すると、先ほど登録したリストの値が表示されました。

In [4]: dict_sales['FY2012']
Out[4]: [3, 2, 7, 2, 6, 4, 8, 11, 6, 7, 3, 8]

 

また次のようにインデックスを指定することで、リストの内、特定の値を取得することもできます。ここでは[2]と指定することで、リストの3番目の値7を取得しています。

In [5]: dict_sales['FY2012'][2]
Out[5]: 7

 

またディクショナリの定義は、dictを利用して次のように記述することもできます。

dictへの引数に、数値や文字列などの値とキーのペアを=(イコール)で対応付けて記述します。

dictionary = dict(キー1 = 値1, キー2 = 値2, キー3 = 値3, ……}

 

先ほどの例1と同様に、年度毎の売上をdictを使ってディクショナリdict_salesに格納した例は以下になります。

In [6]: dict_sales = dict(FY2010 = 32, FY2011 = 48, FY2012 = 67, FY2013 = 75, FY2014 = 92, FY2015 = 103)

 

「キー = 値」となっていることから直感的にわかりやすく、dictを使ってディクショナリを定義している場合もありますので、紹介しました。

 

Pythonのディクショナリへの要素の追加

ディクショナリへの要素の追加は存在していないキーを指定して値を代入すると、キーと値をペアとする新しい要素が追加されます。

 

例えば、先ほど作成したディクショナリdict_salesに対して、FY2016の売上130を追加するには、キー’FY2016’とその値130をペアで代入します。

In [1]: dict_sales[‘FY2016’] = 130

 

再度、ディクショナリdict_salesの中身を確認すると、キー’FY2016’とその値130がペアで登録されていることがわかります。

In [2]: dict_sales
Out[2]: {'FY2010':32, 'FY2011':48, 'FY2012':[3, 2, 7, 2, 6, 4, 8, 11, 6, 7, 3, 8], 'FY2013':75, 'FY2014':92, 'FY2015':103, 'FY2016':130}

 

動画教材紹介私(清水 義孝)が作成したコース「PythonでWebスクレイピング・クローリングを極めよう!(Scrapy、Selenium編)」(Udemyへのリンク)が新発売!
新発売を記念して、10月29日まで67%オフ(1,200円最安値)大セール中!!!

Pythonのディクショナリの値の変更

ディクショナリに格納した値の変更はキーを指定して変更値を代入します。

 

例えば、ディクショナリdict_salesに対して、先ほど追加したFY2016の売上130を125に変更するには、キー’FY2016’に対して変更後の値125をペアで代入します。

In [1]: dict_sales[‘FY2016’] = 125

再度、ディクショナリdict_salesの中身を確認すると、キー’FY2016’の値が125に変更されていることがわかります。

In [2]: dict_sales
Out[2]: {'FY2010':32, 'FY2011':48, 'FY2012':[3, 2, 7, 2, 6, 4, 8, 11, 6, 7, 3, 8], 'FY2013':75, 'FY2014':92, 'FY2015':103, 'FY2016':125}

 

Pythonのディクショナリの値の削除

ディクショナリに格納した値の削除は、del文を利用します。

del文の記述は、以下のようにディクショナリに対して、削除したい値のキーを指定します。

del ディクショナリ[キー]

 

例えば、ディクショナリdict_salesに対して先ほど追加したキー’FY2016’と売上125のペアを削除するには、del文を用いて以下のように記述します。

In [1]: del dict_sales[‘FY2016’]

再度、ディクショナリdict_salesの中身を確認すると、キー’FY2016’とその値125のペアが削除さていることがわかります。

In [2]: dict_sales
Out[2]: {'FY2010':32, 'FY2011':48, 'FY2012':[3, 2, 7, 2, 6, 4, 8, 11, 6, 7, 3, 8], 'FY2013':75, 'FY2014':92, 'FY2015':103}

 
 
著書の紹介です。

 

最後に、Pythonやスクレイピングのスキルをさらに向上させたい方は、以下の私のUdemy講座を是非参考にしてみてください!

スクレイピング初心者にもわかりやすいよう、基本的なトピックから順を追って、丁寧に解説しています。またPythonを初めて学ばれた方も、最初に取り組みやすい内容になっています。

Pythonによるビジネスに役立つWebスクレイピング
発売数3,400本突破を記念して、今だけ期間限定で87%オフの大セール中!!!


既に3400名以上の方に受講頂き、大変好評です。またコースに満足いただけない場合でも、30日返金保証があるので安心です。

期間限定の割引クーポンは、こちらから!
>> Pythonによるビジネスに役立つWebスクレイピング
   
   
 
 
 





まとめ記事

1

Python3におけるWEBスクレイピングのやり方について初心者向けに解説した記事です。   Requests、Beautiful Soup、Selenium、Pandas、newspape ...

2

Pythonの基本的なトピックについて、チュートリアル形式で初心者向けに解説した記事です。プログラミング未経験者や初心者でもわかりやすいよう、丁寧に解説しています。   Pythonでデータ ...

3

Pandas(パンダス)とは、データを効率的に扱うために開発されたPythonのライブラリの1つで、データの取り込みや加工・集計、分析処理に利用します。   Pandasには2つの主要なデー ...

4

データ分析、機械学習、ディープラーニングにはグラフの描画による可視化は不可欠です。データは、加工前の状態ではただの数字の羅列でしかなく、一目で必要な情報が伝わるものではありません。それを集計しグラフに ...

5

NumPy(ナンパイ)は、数値計算を効率的に行うための拡張ライブラリです。ベクトルや行列などを効率的に数値計算するための数学関数ライブラリを提供します。NumPyを使うことにより、数値計算をより早く、 ...

-09. ディクショナリ(Dictionary)

Copyright© AI-interのPython3入門 , 2021 All Rights Reserved.