Мне показалось, что я понял операции нарезания Python, но когда я попытался обновить список, я смутился:
>>> foo = [1, 2, 3, 4]
>>> foo[:1] = ['one'] # OK, foo updated
>>> foo
['one', 2, 3, 4]
>>> foo[:][1] = 'two' # why foo not updated?
>>> foo
['one', 2, 3, 4]
>>> foo[:][2:] = ['three', 'four'] # Again, foo not updated
>>> foo
['one', 2, 3, 4]
Почему обновление не обновляется после foo[:][1] = 'two'
?
Обновление: Возможно, я не ясно объяснил свои вопросы. Я знаю, что при разрезании создается новый список. Я сомневаюсь, почему назначение разреза обновляет список (например, foo[:1] = ['one']
), но если есть два уровня среза, он не обновляет исходный список (например, foo[:][2:] = ['three', 'four']
).