Python: Как переместить индекс в диктовку - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь переместить все записи в dict из i в i + 1. Также я хочу удвоить первую запись, чтобы позже изменить запись 0.

То, что я пробовал:

a={}
a[0]={}
a[1]={}
a[0][1]='a_0_1'
a[1][1]='a_1_1'
b = a.copy()
c = {}
for i in range(0, len(b)):     
  c[i+1]=b[i]
c[0]=b[0]   
c[0][1] = 'c_0_1'

Я получаю результаты, которые я полностью не понимаю. Записи меняются во всех диктовках. Почему это происходит?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Как отметил Марк Мейер, вы можете заменить a.copy() на a.deepcopy(), чтобы b не была мелкой копией a. Обратите внимание, что deepcopy, как и copy, находится в модуле copy.

0 голосов
/ 16 апреля 2020
c = {key + 1 : value for key, value in a.items()}
...