見出し画像

Pythonの基礎#21「辞書型」

データ型の中で、複数のデータをまとめたリスト型に似たデータ型で「辞書型」というデータ型があります。リスト型はインデックスが整数型でしたが「辞書型」はいろんなデータをキーで関連づけて扱えます。
例えば、フルーツの名前や単価、重量を辞書型で表してみると以下のようになります。

fruits = {'name':'りんご','price':200, 'gram':120}
print(fruits['name'])

リスト型との違いは、リスト型は先頭からインデックス値(0から始まる整数)で示すことができますが、辞書型はキーとその値で記述していきますので、書く順番は関係ありません。また、変数名['追加したいキー'] = 値で追加することができます。

fruits['shop'] = '◯商店'
print(fruits)

リストのように辞書型を扱いたい時の関数は以下の通りです。
・keys():辞書のキーを返す
・values():辞書の値を返す
・items():キーと値を別々の変数に入れて扱う

list = fruits.keys()
for k in list:
   print(k)

list = fruits.values()
for k in list:
   print(k)

list = fruits.items()
for k ,v in list:
   print('key:'+ k + '  valuue:' + str(v))

辞書型でキーを取得するときにキーの存在を確認しながら取得するのは面倒です。そんなとき、get関数は便利です。get関数を使うと、もし、キーが存在しない場合、返す値を設定することができます。get関数の第1引数に、取得したいキー、第2引数に、存在しないときに返す値を渡します。しかし、元の辞書は変更されません。

'name' in fruits.keys() # 存在すれば、True,存在しなければ、False
fruits['xxx'] # エラーになります。
f = fruits.get('xxx',0) # エラーを発生させず、0を返します。
print(f)

また、setdefault関数を使用すると、キーが存在しない時の値を与えることができます。辞書に追加されます。setdefault関数の第1引数に、キー、第2引数に存在しない時の値を渡します。もし、そのキーが存在する場合には、もともとあったそのキーの値となります。

fruits.setdefault('year',2019) # 'yeat'というキーに2019という値が追加されます
fruits
fruits.setdefault('name','apple') # 'name'というキーはもう存在するので、'name'の値に上書きされたりすることはありません。
fruits​










この記事が気に入ったらサポートをしてみませんか?