Я пытаюсь изменить определенные c записи в списке словарей, используя функцию. Однако я не могу изменить одну запись, не изменив их все. Я пробовал каждую комбинацию dict () и .copy (), которую только могу придумать, и не могу заставить это работать. Как я могу это исправить?
a = dict(population[10][2])
b = a.copy()
print(a == b)
print(route_length(a))
print(route_length(b))
True
(3, 0, 1, 1, 1, 1, 2, 2, 0, 0, 2, 0, 5, 4 , 0, 1, 0, 0)
(3, 0, 1, 1, 1, 1, 2, 2, 0, 0, 2, 0, 5, 4, 0, 1, 0, 0)
c = dict(mutate(a))
print(route_length(c))
(2, 1, 1, 1, 1, 1, 1, 0, 0, 0, 3, 0, 6, 4, 0, 2, 0, 0)
d = dict(mutate(b))
print(route_length(c))
print(route_length(d))
(3, 0, 0, 0, 0, 2, 1, 0, 1, 0, 3, 0, 7, 3, 0, 3, 0, 0)
(3, 0, 0, 0, 0, 2, 1, 0, 1, 0, 3, 0, 7, 3, 0, 3, 0, 0)
c == d
True
Я не ожидаю каких-либо конкретных c ответов от 'mutate', просто 'c' и 'd' будут разными. 'mutate' случайным образом переставляет некоторые списки, моя распечатка дает длины разных списков. Я просто использовал, чтобы показать, что что-то происходит, и что каждый раз происходит что-то новое.