【python】 dict型でKeyの存在チェックにgetを使う
dict型でKeyの存在チェックにinを使っていたのですが、getが便利!ってことに気づいたので紹介します
データA
{"修学旅行先": ”長野”, "先生": [山田,高橋], "注意事項": ”登山靴を持ってくる”}
データB
{"修学旅行先": ”京都”, "先生": [小山], "注意事項": ””}
データC
{"修学旅行先": ”北海道”, "先生": [細谷]}
上記のようなdict型データがあった場合、"注意事項"のKeyの値があるかどうかを調べる時、今までは下記を使っていました。
if "注意事項" in data and len(data["注意事項"]) > 0:
print(data["注意事項"])
または
if "注意事項" in data and data["注意事項"] != "":
print(data["注意事項"])
でも、getを使えば、andを使わなくてOK
if data.get("注意事項"):
print(data["注意事項"])
これは、データBのように、Key”注意事項”の値が空文字なら、
data.get("注意事項")は空文字が返ってくる
データCのように、Key”注意事項”が存在しなければ、
data.get("注意事項")はNoneが返ってくる
PythonのIf文は空文字もNoneも、falseとして扱ってくれるので、getを使うとスッキリ書けるよ!という話でした。
おやすみなさい