替换Python字典中的键的值?

时间:2014-03-06 19:14:01

标签: python dictionary

如何执行以下操作,但是new_key是否与old_key之前出现的位置相同?所以解决方案看起来像:

{ 'ONE: 'one', 2:'two', 3:'three' }   

示例:

dict[new_key] = dict[old_key]
    del dict[old_key]

或者一步到位:

dict[new_key] = dict.pop(old_key)

如果未定义dict [old_key],将引发KeyError。请注意,这将删除dict [old_key]。

>>> dict = { 1: 'one', 2:'two', 3:'three' }
>>> dict['ONE'] = dict.pop(1)
>>> dict
{2: 'two', 3: 'three', 'ONE': 'one'}
>>> dict['ONE'] = dict.pop(1)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
KeyError: 1

2 个答案:

答案 0 :(得分:1)

字典无序;不要依赖按键的顺序。因此,替换“保持秩序”的关键是没有意义的。

可以使用OrderedDict执行此操作,但它需要将所有键插入到新的有序字典中(因为您无法插入OrderedDict的中间)。

答案 1 :(得分:0)

我会使用您描述的方法替换密钥,但请记住,Python dicts在语义上是无序的:

my_dict[new_key] = my_dict.pop(old_key)