2015-06-08 2 views
8

Как сменить ключ в словаре Python?Переименование ключей словаря

Процедура возвращает словарь. Все в порядке со словарем, за исключением пары ключей, которые нужно переименовать. Этот код ниже копирует запись словаря (ключ = значение) в новую запись с нужным ключом, а затем удаляет старую запись. Есть ли более питоновский путь, возможно, без дублирования ценности?

my_dict = some_library.some_method(scan) 
my_dict['qVec'] = my_dict['Q'] 
my_dict['rVec'] = my_dict['R'] 
del my_dict['Q'], my_dict['R'] 
return my_dict 

ответ

26

dict ключи неизменяемы. Это означает, что они не могут быть изменены. Вы можете прочитать больше из docs

словари индексируются по ключам, которые могут быть любым неизменяемого типа

Вот обходной путь с помощью dict.pop

>>> d = {1:'a',2:'b'} 
>>> d[3] = d.pop(1) 
>>> d 
{2: 'b', 3: 'a'}