Dokument Pythona mówi, że cięcie listy zwraca nową listę.
Teraz, jeśli zwracana jest „nowa” lista, mam następujące pytania związane z „Przydziałem do plasterków”
a = [1, 2, 3]
a[0:2] = [4, 5]
print a
Teraz wynik będzie następujący:
[4, 5, 3]
- Jak coś, co coś zwraca, może pojawić się po lewej stronie ekspresji?
- Tak, przeczytałem dokumentację i jest tam napisane, że jest to możliwe, skoro cięcie listy zwraca „nową” listę, dlaczego oryginalna lista jest modyfikowana? Nie jestem w stanie zrozumieć stojącej za tym mechaniki.
a[0] = 4
by zrobił?
=
, więc zamiast odrzucać to jako nieprawidłową składnię, Python zamienia go w coś bardziej podobnego do tego, czego można się spodziewać. Ponieważ Python nie ma odniesień, nie działałoby, gdyby wycinek zmienił oryginalną listę. Otrzymasz kopię. Jeśli podałeś więcej informacji na temat swojej aplikacji, być może będziemy mogli lepiej pomóc Ci robić rzeczy w sposób „pythonowy”. :)