Почему не изменяется словарь в массиве?
a = [{'name': '127345', 'digit': 12345}, {'name': '134256547', 'digit': 12355545}]
e = []
for i in a:
i['name'].replace('7', '9')
e.append(i)
print(e)
Поменял 7 на 9, а изменения не сохраняются, в новый список сохраняется тоже самое, как мне сохранить в переменной изменения которые проделаны в цикле?
Ответы (1 шт):
Автор решения: Vetedde
→ Ссылка
Вам надо сохранить результат замены:
a = [{'name': '127345', 'digit': 12345}, {'name': '134256547', 'digit': 12355545}]
e = []
for i in a:
new_val = i.copy()
new_val['name'] = new_val['name'].replace('7', '9')
e.append(new_val)
print(e)
Обратите внимание на i.copy(), если вы напишите так,
a = [{'name': '127345', 'digit': 12345}, {'name': '134256547', 'digit': 12355545}]
e = []
for i in a:
i['name'] = i['name'].replace('7', '9')
e.append(i)
print(e)
print(a)
