В Fluent Python, Лучано Рамальо, глава 8, Копии по умолчанию мелкие, есть пример:
>>> listOne = [3, [55, 44], (7, 8, 9)]
>>> listTwo = list(listOne)
>>> listTwo
[3, [55, 44], (7, 8, 9)]
>>> listTwo == listOne
True
>>> listTwo is listOne
False
Автор предлагает нам пройти через этот код, используя Online Python Tutor, чтобы увидетьчто происходит шаг за шагом.
Я выполнил первые две строки, используя Online Python Tutor, и вот такой снимок экрана:
Что меня смущаетis:
Все три элемента из каждого списка, неизменное целое число, список и кортеж на самом деле одинаковы, например,
listOne[0] is listTwo[0] #True
listOne[1] is listTwo[1] #True
listOne[2] is listTwo[2] #True
Так почему на графике показаны две отдельные 3 наначало их соответствующего списка?