我只想更改字典中鍵的值(如果它已經存在)。Python:修改現有的鍵值對,如果鍵不存在則引發異常
我可以用下面的函數做到這一點,但我想知道是否有一個更簡潔的方法來做到這一點。
def modify_existing_key_value(d, key, new_value):
if key in d:
d[key] = new_value
else:
raise KeyError(k)
用例是無意中避免在字典中創建新的鍵值對。
我只想更改字典中鍵的值(如果它已經存在)。Python:修改現有的鍵值對,如果鍵不存在則引發異常
我可以用下面的函數做到這一點,但我想知道是否有一個更簡潔的方法來做到這一點。
def modify_existing_key_value(d, key, new_value):
if key in d:
d[key] = new_value
else:
raise KeyError(k)
用例是無意中避免在字典中創建新的鍵值對。
剛剛嘗試使用該密鑰來訪問元素,如果它的存在,沒有任何反應,所以繼續執行到重置值的下一個指令,否則KeyError
將引發異常,因爲你想要的:
def modify_existing_key_value(d, key, new_value):
d[key] # We don't need the old value, just checking the key
d[key] = new_value
函數的第一行的全部目的:
d[key]
是提高KeyError
異常,如果字典中不包含的關鍵。
使用d [關鍵]提高KeyError
例外,一個班輪可能是:
d[key] = new_value if key in d else d[key]
爲什麼不只是'd [key]'而不是綁定到一個變量,看到你不需要它呢? – Volatility 2013-04-27 00:15:02
似乎我是唯一一個真正閱讀過這個問題的人,還是有人低估了我...... – piokuc 2013-04-27 00:15:10
只是爲了讓它更具可讀性。但事實並非如此,我並不需要 – piokuc 2013-04-27 00:15:48
如果調用代碼將不得不檢查異常呢(用try-except塊),爲什麼使用更難的函數來讀取與原始if語句基本相同的函數('if key in d')? – 2013-04-27 00:08:42