我只想更改字典中键的值(如果它已经存在)。
我可以使用以下函数执行此操作,但我想知道是否有更简洁的方法来执行此操作。
def modify_existing_key_value(d, key, new_value):
if key in d:
d[key] = new_value
else:
raise KeyError(k)
用例是无意中避免在字典中创建新的键值对。
答案 0 :(得分:6)
只是尝试使用密钥访问元素,如果它在那里,没有任何反应,那么执行将继续执行下一条重置值的指令,否则将引发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 [key]引发KeyError
例外,单行可能是:
d[key] = new_value if key in d else d[key]