Подтвердить что ты не робот

Python: зачем использовать "list [:]", когда "список" относится к одной и той же вещи?

Рассмотрим список >>> l=[1,2,3].

В чем преимущество использования >>> l[:], когда >>> l печатает то же, что и предыдущий?

Спасибо.

4b9b3361

Ответ 1

Создает (неглубокую) копию.

>>> l = [1,2,3]
>>> m = l[:]
>>> n = l
>>> l.append(4)
>>> m
[1, 2, 3]
>>> n
[1, 2, 3, 4]
>>> n is l
True
>>> m is l
False

Ответ 2

l[:] называется нотой среза. Его можно использовать для извлечения только некоторых элементов в списке, но в этом случае границы опущены, так что весь список возвращается, но из-за среза это будет фактически ссылкой на другой список, чем l который содержит одни и те же элементы. Этот метод часто используется для создания мелких копий или клонов.

http://docs.python.org/tutorial/introduction.html#lists