Python 3.2.3 (default, Apr 11 2012, 07:15:24) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> u = [4, 5, 6, 7, 8, 9]
>>> u[1::1] = [3, 2, 1, 0]
>>> u
[4, 3, 2, 1, 0]
>>> u[9:0:-1] = [8, 7, 6, 5]
>>> u
[4, 5, 6, 7, 8]
>>> u[9:0:-1] = [16, 12, 8]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 3 to extended slice of size 4
>>> u
[4, 5, 6, 7, 8]
>>>
Oczekiwane zachowanie: żaden wyjątek rzucony na końcowym rachunku przydziału; u
powinien wydrukować na ostatniej linii jako [4, 8, 12, 16]
.Dlaczego nie można przypisać dowolnej iteracji do rozszerzonego plasterka, którego krok to -1?
Mogę przypisać do rozszerzonego plasterka, którego krok wynosi 1, nawet jeśli przypisywana przeze mnie iteracja to "niewłaściwa długość". Dlaczego więc nie mogę przypisać do rozszerzonego plasterka, którego krok wynosi -1 i czy działa on w sposób oczywisty?
Ma sens. Mimo to, OP ma rację, że dla kroku -1 oczekiwane zachowanie jest całkiem jasne, więc może być miło mieć ten specjalny przypadek tak, jak krok 1 to ... – weronika
@weronika Zgoda, ale powiedz to do programistów Pythona;) – obmarg