pytonにおいて、データを1つの変数に格納する方法はコレクションとよばれ、大きく分けて4つの方法があります。
1.リスト型
2.ディクショナリ型
3.タプル型
4.集合型
詳しくはこちらを参照→ 複数データを1つの変数で管理する / コレクション
辞書型では、「キー」と「値」をセットで格納することができ、「キー」を指定して「値」を呼び出すことができます。
今回は、辞書型のコレクションから、キーと値を同時に取り出して、セットで画面表示する方法について記述しておきます。
当社の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}
bの販売単価は3000円です。
cの販売単価は5000円です。
dの販売単価は7000円です。
gの販売単価は9000円です。
#辞書型のデータ(商品名と販売単価)を変数に代入・・①
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」の処理が始まります。
同じような処理を繰り返し、最後の商品まで終了したらプログラムは終了します。