【Python】辞書型について
全然わからないので、調べて書いてみた。
①キーを指定して「値」を取得する方法
# {キー: 値, キー: 値,...}
fruit = {"apple": "red", "grape": "purple", "pine": "yellow"}
key = fruit["grape"]
print(key)
purple
②存在しないキーを指定するとエラーが出る
fruit = {"apple": "red", "grape": "purple", "pine": "yellow"}
# 存在しないキーを指定
key = fruit["orange"]
print(key)
.
.
key = fruit["orange"]
~~~~~^^^^^^^^^^
KeyError: 'orange'
存在しないキーを指定するとエラー文がでます!
③エラー文を出さない方法。getメソッドを使う。
fruit = {"apple": "red", "grape": "purple", "pine": "yellow"}
key = fruit.get("orange", " ")
print(key)
None
key = fruit.get("orange", " ")
後ろに何も書かなければNoneが返ってきます。
(エラー文も出ずに何も表示されないということは、Noneが変えてってきているという風に考えていいと思います。
実際、私も何も表示されなかったのですが、Noneが返ってくることになっているはずなので分かりやすく、無理やり書きました。(笑))
④エラー文自分の好きなように指定できます
fruit = {"apple": "red", "grape": "purple", "pine": "yellow"}
key = fruit.get("orange", "エラーだよ")
print(key)
「エラーだよ」と記述してみました。
すると…
エラーだよ
自分が指定したエラー文が出てきました!
getメソッドとは?
get()とは、辞書の「キー」から「値」を取得するメソッド
になります。
存在しないキーにget()を使うと、None
が返ってくるようになっています。
辞書.get(キー, デフォルト値)
①キー・・・辞書で取得したい値に対する「キー」を指定する
②デフォルト値・・・存在しないキーを取得する場合の「値」を指定する
辞書型ネスト
ネストとは・・・入れ子のことです!
入れ子とは、今回だと辞書型(dic)の中にさらに辞書型(dic)を入れることです。
fruits = {
"fruits1": {
"name": "apple",
"area": "aomori",
"quantity": 10
},
"fruits2": {
"name": "orange",
"area": "ehime",
"quantity": 5
}
}
キーと値はどれなのかについては、めちゃくちゃ分かりずらいかもしれないですが、分けて書いてみました。
辞書の中に辞書がさらに入っている感じになってます。
fruits = { (キー)
から見ると、fruits1とfruits2がすべて値
になります。
fruits = { # キー
"fruits1": { # 値
"name": "apple",
"area": "aomori",
"quantity": 10
},
"fruits2": {
"name": "orange",
"area": "ehime",
"quantity": 5
} # ここまで値
} # キーのとじカッコ
fruites1(キー)
から見ると、"name": "apple", "area": "aomori", "quantity": 10 が値
になります。
"fruits1": { # キー
"name": "apple", # fruites1の値
"area": "aomori", # fruites1の値
"quantity": 10 # fruites1の値
}, # キーのとじカッコ
"fruits2": { # キー
"name": "orange", # fruites2の値
"area": "ehime", # fruites2の値
"quantity": 5 # fruites2の値
} # キーのとじカッコ
最後は、最初の時に学ぶ形のキー:値
になります。
# キー : 値
"name": "apple",
"area": "aomori",
"quantity": 10