我明白切片,但我不明白为什么这个打印3?在Python中列出简单的切片?
所以这里是我的理解:
它说,X = [0,1,2,3,4]然后
指数2比2将被[0,1,2,3代替4]
因此X [5]不在范围内
x = range(5)
x[2:3] = range(5)
print x[5]
我明白切片,但我不明白为什么这个打印3?在Python中列出简单的切片?
所以这里是我的理解:
它说,X = [0,1,2,3,4]然后
指数2比2将被[0,1,2,3代替4]
因此X [5]不在范围内
x = range(5)
x[2:3] = range(5)
print x[5]
我想你会已了解了是怎么回事,如果你做切片分配后打印整个x
列表。它将是[0, 1, 0, 1, 2, 3, 4, 3, 4]
。来自初始范围的2
已被整个第二范围所取代,从而扩大了列表的范围,使其适合。
如果切片的步长为1
或-1
,则只能扩展带有此类切片分配的列表。如果分配给步长较大的列表,则要替换的序列必须具有完全相同的大小。
此更改后...
x[2:3] = range(5)
X打印... [0,1,0,1,2,3 ,4,3,4],使得x [5 ]现在是3。
在地区蔓延这个你在做什么:
x = range(5)
print x
[0, 1, 2, 3, 4]
x[2:3] = range(5)
在这里,你在做什么,你想要索引值x [2:3]是范围(5), 现在,如果你打印X [2:3],它会返回你[2]在列表
Print x[2:3]
[2]
所以现在在初始化X [2:3] =范围(5) ,它将插入范围(5),它是[ 0,1,2,3,4]在索引x [2:3]中表示将替换项目2的值。
在此之后,如果你打印X
x[2:3] = range(5)
print x
[0, 1, 0, 1, 2, 3, 4, 3, 4]
现在,如果你打印X [5]它将返回3上5指数值为3
x[0] = 0
x[1] = 1
x[2] = 0
x[3] = 1
x[4] = 2
x[5] = 3
x[6] = 4
x[7] = 3
x[8] = 4
希望它帮助。
在范围分配后添加一个'print x' – JGreenwell