05-Python

Python(Part.36)| python【辞書(利用編-1)】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

(pythonの)「辞書」について作成方法を理解する。
(pythonの)「辞書」について値の取り出し方法を理解する。
「dict関数」の引数に「zip関数」を利用して辞書を作成する方法を理解する。
インデックス式を利用した値の取り出し方法を理解する。
getメソッドを利用した値の取り出し方法を理解する。

(pythonの)「辞書」の利用方法

(pythonの)「辞書」の作成と基本的な値の取り出し

(pythonの)「辞書」の作成方法には「{}(辞書表記演算子)を利用する方法」と「dict関数(組み込み関数)を利用する方法」の2つがあります。作成する辞書の値にはリストなども利用できます。

辞書の値を取り出すには、要素のキー(key)を利用します。入力は「辞書名.キー名」と入力します。

「{}(辞書表記演算子)」を利用する方法

辞書の作成方法のひとつめは「{}(辞書表記演算子)を利用する方法」です。辞書表記演算子はキーボードのEnterキーの左にある []括弧 をShiftキーを押したまま押下します。

サンプルプログラム(辞書表記演算子による辞書の作成と値の取り出し)
# キーに文字列、値にリストを用いた辞書を作成しています。
# キーと値は「:」コロンを利用して区切ります。
# 各要素は「,」カンマで区切ります。

vegetables = {
    'tomato'  :[150, 50],
    'onion'   :[100, 45],
    'cucumber':[45, 34],
    'carrot'  :['null','null'],
    'eggplant':[98, 67],
    'potato'  :[68, 101]
    }

# 値は要素のキーを利用して取り出します。
print('onion' ,'--->',vegetables['onion'])
print('carrot','--->',vegetables['carrot'])

# 辞書の全ての要素を確認できます。
print(vegetables)

実行結果

辞書での基本的な値の取り出し方法

実行結果にある通り、辞書の値は、「辞書名.キー名」(vegetables[‘onion’ ])として取り出しています。

辞書の全ての要素を確認する場合、変数名(辞書名)「print(vegetables)」のみを利用します。

登録されていないキー(key)を利用すると「KeyError」となります。

サンプルプログラム(辞書表記演算子による辞書の作成と存在しないキーの利用)
vegetables = {
    'tomato'  :[150, 50],
    'onion'   :[100, 45],
    'cucumber':[45, 34],
    'carrot'  :['null','null'],
    'eggplant':[98, 67],
    'potato'  :[68, 101]
    }

print('onion' ,'--->',vegetables['okra'])

実行結果

サンプルプログラム(辞書表記演算子による空の辞書の作成)
vegetables = {}

print(vegetables)

実行結果

「dict関数(組み込み関数)」を利用する方法

辞書の作成方法のふたつめは「dict関数(組み込み関数)を利用する方法」です。辞書表記演算子の場合と異なる点は次の通りです。

{}(辞書表記演算子)dict関数(組み込み関数)
キーが文字列の場合、
シングルクォーテーションを利用する
キーが文字列の場合でも、
シングルクォーテーションは不要
キーと値の間は「:」コロンキーと値の間は「=」イコール
サンプルプログラム(dict関数による辞書の作成と値の取り出し)
# キーにシングルクォーテーションを利用しません。
# キーと値は「=」を利用して結びつけします。
# 各要素は「,」カンマで区切ります。
vegetables = dict(
    tomato   = [150, 50],
    onion    = [100, 45],
    cucumber = [45, 34],
    carrot   = ['null','null'],
    eggplant = [98, 67],
    potato   = [68, 101]
    )

# 値は要素のキーを利用して取り出します。
print('onion' ,'--->',vegetables['onion'])
print('carrot','--->',vegetables['carrot'])

実行結果

サンプルプログラム(dict関数を利用してリストやタプルから辞書を作成する)

「dict関数」を利用すると「リスト」や「タプル」などのオブジェクトからも
「辞書」を作成できます。

「dict関数」の引数にはオブジェクトを利用することも可能です。サンプルプログラムでは、引数にリストオブジェクトを結びつけた変数名を利用しています。

vegetables_list = [
             ['tomato', [150, 50]],
             ['onion', [100, 45]],
             ['cucumber', [45, 34]],
             ['carrot', ['null','null']],
             ['eggplant', [98, 67]],
             ['potato', [68, 101]]
             ]

vegetables_dict = dict(vegetables_list)
print(vegetables_dict)

リストなどのオブジェクトを利用する場合は二次元リストの構造で、内側のリストのひとつ目の要素を辞書のキーとして設定する値、ふたつ目の要素を辞書の値として設定する値とします。

実行結果

「dict関数」の引数に「zip関数」を利用して辞書を作成する方法

「dict 関数」の引数に「zip関数」を利用して辞書を作成することができます。zip 関数の引数には「key(キー)」と「value(値)」として別々のイテラブルオブジェクトを指定します。

vegetables_name = ['tomato', 'onion', 'cucumber', 'carrot', 'eggplant', 'potato']
vegetables_data = [[150, 50], [100, 45], [45, 34], ['null','null'], [98, 67], [68, 101]]

vegetables_dict = dict(zip(vegetables_name, vegetables_data))
print(vegetables_dict)

実行結果

辞書での値の取り出し方法

辞書の値を取り出す方法には「インデックス式を利用する方法」と「getメソッドを利用する方法」があります。

「インデックス式」を利用した値の取り出し方法

「辞書」ではインデックス式に「キー(key)」を利用して値を取り出すことができます。取り出し時には、事前に指定する「キー」が辞書の要素として存在しているか「in演算子」を利用して確認します。

「in演算子」を利用するとキーの存在をスキャンしてくれます。

存在しないキーを利用した場合「KeyError」となります。

vegetables = {
    'tomato'  :[150, 50],
    'onion'   :[100, 45],
    'cucumber':[45, 34],
    'carrot'  :['null','null'],
    'eggplant':[98, 67],
    'potato'  :[68, 101]
    }

input_vegetable = input('野菜名(英語)を入力してください。')
if input_vegetable in vegetables:
    print('{}の値段は{}、在庫は{}です。'.format(
        input_vegetable,
        vegetables[input_vegetable][ 0 ],
        vegetables[input_vegetable][ 1 ])
        )

実行結果

「野菜名(英語)を入力してください。」という表示の後に「eggplant」と入力したときの結果です。

formatメソッドを利用する場合、置換フィールドには、formatメソッドに指定した値を前から順番に埋め込むことになりますが、置換フィールドでインデックス番号を利用して指定することも可能です。

‘{0}の値段は{1}、在庫は{2}です。’.format(
input_vegetable,
vegetables[input_vegetable][ 0 ],
vegetables[input_vegetable][ 1 ])
)

このように指定すると値の埋め込む順番を意識せずに済みます。

「get メソッド」を利用した値の取り出し方法

「get メソッド」を利用すると「存在しないkey」を利用した場合、キーワード
引数の「default」の値が返されます。「default」に値が設定されていない場合は「None」を返します。

vegetables = {
    'tomato'  :[150, 50],
    'onion'   :[100, 45],
    'cucumber':[45, 34],
    'carrot'  :['null','null'],
    'eggplant':[98, 67],
    'potato'  :[68, 101]
    }

input_vegetable = input('野菜名(英語)を入力してください。')
if vegetables.get(input_vegetable) != None:
    print('{}の値段は{}、在庫は{}です。'.format(
        input_vegetable,
        vegetables[input_vegetable][ 0 ],
        vegetables[input_vegetable][ 1 ])
        )
else:
    print('正しくキーを入力してください。')

実行結果(キーが存在する場合)

実行結果(キーが存在しない場合)

今回は以上になります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
05-Python

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師

2024年3月20日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
05-Python

Python(Part.27)| python【選択構造(match文)(2)】|  [Selection Structure] (match statement)(2)

2024年7月10日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site