Список Python не является той же ссылкой

Это - код:

L=[1,2]

L is L[:]

False

Почему это - Ложь?

6
задан SilentGhost 16 March 2010 в 11:16
поделиться

3 ответа

L [:] (нотация среза) означает: Создание копии всего списка элемент за элементом.

Итак, у вас есть два списка с одинаковым содержанием, но разные объекты. Поскольку is оценивает идентичность объекта, он возвращает False .

L == L [:] возвращает True .

14
ответ дан 8 December 2019 в 05:54
поделиться

В случае сомнений спрашивайте id ;)

>>> li = [1,2,4]
>>> id(li)
18686240
>>> id(li[:])
18644144
>>> 
6
ответ дан 8 December 2019 в 05:54
поделиться

Метод списка getslice , который вызывается при переходе к L [], возвращает список; поэтому, когда вы вызываете его с аргументом ':', он не ведет себя иначе, он возвращает новый список с теми же элементами, что и исходный.

>>> id(L)
>>> id(L[:])
>>> L[:] == L 
True
>>> L[:] is L
False
2
ответ дан 8 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: