М и L ссылаются на разные объекты, хоть у них и одинаковые значения.
Почему L2 равен [2, 3, 4]?
Anonymous Quiz
9%
Потому что синтаксис слайсинга другой
9%
Потому что L2 неизменяемый объект
80%
Потому что L2 ссылается на копию L1
3%
Это ошибка интерпретатора
Почему myfile1 не откроет файл, а myfile2 откроет?
Anonymous Quiz
54%
Интерпретатор воспримет \п как перенос на новую строку, \t — как табуляцию
15%
r означает регулярное выражение
19%
Для путей черта наклонена в другую сторону, r ее развернет
12%
myfile2 тоже не откроется
Марк Лутц, «Изучаем Python»: положительные смещения начинаются с левого края (смещение 0 дает первый элемент), а отрицательные — с правого края (смещение -1 дает последний элемент). Однако нельзя, чтобы индекс начального элемента среза был отрицательным, а конечного — положительным («смыкать» начало и конец строки Python не станет).
Марк Лутц, «Изучаем Python»: на самом деле мы здесь не модифицировали сам список L1, а изменили компонент объекта, на который L1 ссылается. Изменение такого рода перезаписывает часть значения спискового объекта на месте. Однако поскольку списковый объект совместно используется другой переменной (она ссылается на него), изменение на месте подобного вида оказывает влияние не только на L1. ... В приведенном примере эффект модификации отражается и в списке L2, т.к. он ссылается на тот же самый объект, что и L1. В действительности мы не изменяли список L2, но его значение стало другим, потому что он ссылается на объект, который был перезаписан на месте.
Марк Лутц, «Изучаем Python»: Основы нарезания прямолинейны. Когда вы индексируете объект последовательности вроде строки с указанием пары смещений, разделенных двоеточием, Python возвращает новый объект, который содержит непрерывный сегмент, идентифицируемый парой смещений. Левое смещение считается нижней границей (включающей), а правое — верхней границей (исключающей). То есть Python извлекает элементы, начиная с нижней граница и заканчивая, но не включая верхнюю границу, и возвращает новый объект, содержащий извлеченные элементы. Если левая и правая границы не указаны, тогда по умолчанию для них принимается 0 и длина нарезаемого объекта соответственно.
То есть для массива будут выбраны:
- слева: элемент с индексом 1 — число 2 (помним про индексацию с нуля)
- справа: элемент с индексом 3 НЕВКЛЮЧИТЕЛЬНО (то есть остается число 3)
То есть для массива будут выбраны:
- слева: элемент с индексом 1 — число 2 (помним про индексацию с нуля)
- справа: элемент с индексом 3 НЕВКЛЮЧИТЕЛЬНО (то есть остается число 3)