2015-06-08 12 views
8

Jak zmienić klucz w słowniku Python?Zmiana nazwy klawiszy słownika

Procedura zwraca słownik. Wszystko jest w porządku ze słownikiem, z wyjątkiem konieczności zmiany kilku kluczy. Poniższy kod kopiuje wpis słownikowy (klucz = wartość) do nowego wpisu za pomocą wybranego klucza, a następnie usuwa stary wpis. Czy istnieje bardziej Pythonowy sposób, być może bez powielania wartości?

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 

Odpowiedz

26

dict klucze są niezmienne. Oznacza to, że nie można ich zmienić. Możesz przeczytać więcej ze słowników docs

indeksowane są kluczami, które mogą być dowolne niezmienne type

Tutaj jest obejście tego problemu za pomocą dict.pop

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