JuniorКодИногдаЕщё не отвечали
После b = a на словаре что выведут оба после правок?
Предскажите, что покажет каждый print, и объясните связь между a и b.
a = {1: 1}
b = a
a[2] = 2
b[3] = 3
print(a)
print(b)
Определите вывод.
Оба выводят {1: 1, 2: 2, 3: 3}. b = a связывает второе имя с тем же объектом-словарём — не копирует его, поэтому правки через любое имя видны через оба. Для независимого словаря используйте a.copy() или dict(a) (поверхностная копия). a is b здесь True.
- ✗Думать, что
b = aкопирует словарь, а не создаёт псевдоним - ✗Ожидать, что правки через одно имя не затронут другое
- ✗Путать связывание имени с дублированием объекта
- →Как сделать
bнезависимой поверхностной копиейa? - →Что вернёт
a is bздесь и что это проверяет?