6
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]
>>>
预期的行为:没有例外扔在最后赋值语句; u
应在最后一行打印为[4, 8, 12, 16]
。为什么我不能将任意迭代分配给步长为-1的扩展片?
我可以分配到一个扩展片,其步长为1,即使我分配迭代是“错误的长度”。那么为什么我不能将其分配给步长为-1的扩展片并使其以明显的方式工作?
有道理。尽管如此,OP是正确的,对于-1的步骤,预期的行为是非常清楚的,所以它可能是很好的,有一个特殊的步骤是1 ... – weronika
@weronika同意,但告诉蟒蛇开发者;) – obmarg