Ответ 1
Этот синтаксис является назначением фрагмента. Срез [:]
означает весь список. Разница между nums[:] =
и nums =
заключается в том, что последний не заменяет элементы в исходном списке. Это наблюдается, когда есть две ссылки на список
>>> original = [1, 2, 3]
>>> other = original
>>> original[:] = [0, 0] # changes what both original and other refer to
>>> other # see below, now you can see the change through other
[0, 0]
Чтобы увидеть разницу, просто удалите [:]
из задания выше.
>>> original = [1, 2, 3]
>>> other = original
>>> original = [0, 0] # original now refers to a different list than other
>>> other # other remains the same
[1, 2, 3]
Если буквально воспринимать заголовок вашего вопроса, если list
- это имя переменной, а не встроенная переменная, он заменит длину последовательности на многоточие
>>> list = [1,2,3,4]
>>> list[:] = [...]
>>> list
[Ellipsis]