所以,我正在一个代码库上工作,其中词典包含一些关键信息。在开发过程中的某个时刻,其中一个键的名称已更改,但是较旧的键仍然存在于许多地方。让我们调用键new
和old
作为参考。
为了使其与旧版本兼容,我正在做类似的事情:
dict.get(new_key,dict.get(old_key,None))
这个设计不好还是可以吗?为什么/为什么不呢?
dict.get
正是出于这个原因在这里,因此如果键不在其中,则可以使用默认值。
具有双重后备功能非常好。例如:
d = {}
result = d.get('new_key',d.get('old_key', None))
这意味着在最坏的情况下,result
是None
,但没有错误(这首先是get
的目标。
换句话说,它将new_key
的值作为第一优先级,old_key
的优先级作为第二优先级,None
的优先级作为第三优先级。
这是一种合理的方法。唯一的缺点是它将对两个键都执行get
,这在大多数情况下不会影响性能。
我唯一的笔记是挑剔:
dict
是保留字,因此请勿将其用作变量None
是默认设置,因此可以将其删除以表示old_key
,例如:info.get('a', info.get('b'))
对于您的情况,我认为可以像以前一样使用密钥。只是为了使其更具可读性,您可以这样做:
old_key=d.get(old_key,None)
d.get(new_key, old_key)