什麼是「pythonic」方法來檢查提取前是否在字典中,並在比較中使用它?提取前的詞典鍵[Pythonic方法]
例如:
目前,我做
if "key1" in list2 and list2["key1"]=="5":
print "correct"
,這樣就會對第一個條件短路,如果它失敗。但是,這導致了很長的條件陳述。
是否有更多的「pythonic」方法?我猜測,在try catch中包裝條件是一個更糟糕的主意。
什麼是「pythonic」方法來檢查提取前是否在字典中,並在比較中使用它?提取前的詞典鍵[Pythonic方法]
例如:
目前,我做
if "key1" in list2 and list2["key1"]=="5":
print "correct"
,這樣就會對第一個條件短路,如果它失敗。但是,這導致了很長的條件陳述。
是否有更多的「pythonic」方法?我猜測,在try catch中包裝條件是一個更糟糕的主意。
這種方法完全是pythonic。另外,略有不同的是
if list2.get("key1", <-1,0 or any sensible default, e.g. None>) == 5:
print "correct"
用這種方法你僱用dict.get
方法,它允許從字典中值安全開採(並提供了一種指定默認值)
if list2.get("key1")==5:
print("correct")
雖然,我不會調用字典「list2」。
如果該值可以是無,您可以選擇另一種默認:
if list2.get("key1", object()) in my_other_list:
print("correct")
或使用異常,或者你的「長」的方式。
如果值不是整數 - 期望另一個例外... –
測試兩個不相容的類型的相等性應該只計算爲False,不會引發異常。 – chepner
您仍然可以比較非整數與整數的等式。 – BrenBarn