python, проблема с copy и deepcopy

Рейтинг: 0Ответов: 1Опубликовано: 22.05.2023

имеется код:

my_dict = {'alpha': [1, 2, 3], 'beta': 0.3}

b = my_dict['alpha']
b.append(my_dict['beta'])

print(my_dict)

В выводе получаю:

{'alpha': [1, 2, 3, 0.3], 'beta': 0.3}

Неожиданно 0.3 появилось в словаре. Почему- мне не понятно, скорее всего трабл с копированием во второй строке. Как исправить пока не понимаю.

Ответы

▲ 1Принят

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

my_dict = {'alpha': [1, 2, 3], 'beta': 0.3}

b = my_dict['alpha'].copy()
b.append(my_dict['beta'])

print(my_dict)