辞書型からデータを抽出する基本的な使い方- for 構文 / python

pytonにおいて、データを1つの変数に格納する方法はコレクションとよばれ、大きく分けて4つの方法があります。

1.リスト型
2.ディクショナリ型
3.タプル型
4.集合型

詳しくはこちらを参照→ 複数データを1つの変数で管理する / コレクション

 

辞書型では、「キー」と「値」をセットで格納することができ、「キー」を指定して「値」を呼び出すことができます。

今回は、辞書型のコレクションから、キーと値を同時に取り出して、セットで画面表示する方法について記述しておきます。

 

要件
事業Aで扱う商品を販売価格とセットで表示させたい

 

当社のA事業で扱う商品と販売単価の一覧は次の通りです。

商品名  販売単価
a                   1,000
b                   3,000
c                   5,000
d                   7,000
g                   9,000

商品データが辞書型で変数に代入されています。
Aitem={ ‘a’:1000,’b’:3000, ‘c’:5000, ‘d’:7000, ‘g’:9000}

 

要件回答
aの販売単価は1000円です。
bの販売単価は3000円です。
cの販売単価は5000円です。
dの販売単価は7000円です。
gの販売単価は9000円です。

 

コード(D-1)

#辞書型のデータ(商品名と販売単価)を変数に代入・・①
Aitem={
    ‘a’:1000,
    ‘b’:3000,
    ‘c’:5000,
    ‘d’:7000,
    ‘g’:9000
}

#辞書型のデータ一からキーと値をセットで取得する・・②
for name,price in Aitem.items():

#画面に出力・・③
    sp=”{0}の販売価格は{1}円です。”.format(name,price)
    print(sp)

>>>
aの販売価格は1000円です。
bの販売価格は3000円です。
cの販売価格は5000円です。
dの販売価格は7000円です。
gの販売価格は9000円です。

 

 

 

①辞書型のデータ(商品名と販売価格)を変数に代入する

変数名を「Aitem」とし、次のようにセットします。
辞書型は波カッコ{ } で括ります。

Aitem={ ‘a’:1000,’b’:3000, ‘c’:5000, ‘d’:7000, ‘g’:9000}

変数名 =  {商品名1:販売価格1, 商品名2:販売価格2・・・}

 

②辞書型のデータからキーと値をセットで取得する

for name,price in Aitem.items():

構文は、
for 「キー変数」, 「値変数」 in  「辞書型変数」. items( ) :
items( ) は、キーと値を利用する関数です。

 

Aitem に格納されているキー(商品名)と値(販売単価)が順番にfor 以下の「キー変数 name」と「値変数 price」の箇所に入っていきます。

まず最初の処理「’a:1000’」から処理が始まります。
「a」が「name」に入り、「1000」が「price」に入ります。

 

③画面に出力する

  sp=”{0}の販売価格は{1}円です。”.format(name,price)

 

まず、画面表示として表示したい文字列を for 構文の変数で設定した「name」と「price」をブランクにして作ります。

” { } の販売単価は { } 円です。”

と、値を埋め込みたい場所に{ } を書きます。

最初の{ } に「0 」と番号を付け、次の{ } には「1」と番号を付けていきます。

 

format( name, price )のうち、「name」が {0} に入り、priceが{ 1 } に入ります。

今、「name」には「a 」が入っており、「price」には「1000」が入っているので、{0} には「a」が入り、{1}には「1000」が入ることになります。

よって、
“{0}の販売価格は{1}円です。” →  ”{a}の販売価格は{1000}円です。”
となります。

spはその文字列が入る変数で、print(sp)で表示させます。

 


f-stringという機能を使用すると、簡潔に書くこともできます。

sp= “{0}の販売価格は{1}円です。”.format(name,price)
print(sp)

の代わりに

print ( f  ” 商品 {name} の販売価格は {price} 円 です”  )

と記述します。

文字列の直前に「f」を付けると、数値が格納された変数名を{ } の中に直接入れることができますので、こちらの方がわかりやすいかもしれません。


 

一つ目の処理が終了すると、二つ目の処理に移りますので、

Aitem に格納されている2つ目の商品と販売価格のセット「b: 3000」の処理が始まります。

同じような処理を繰り返し、最後の商品まで終了したらプログラムは終了します。

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です