插入元素在Python

问题描述:

列表我碰到下面的代码已经:插入元素在Python

b = [4,5,6] 
b[-1:-1] = [5] 
print b 

,输出:

b = [4,5,5,6]

要尝试理解发生了什么事,我换2号线到b[-1:-2],b[-1:-3],发现打印的b仍然是一样的。我真的不明白第二行的作用。

此外,当我更改b[-1:-1] = 5时,发生错误,我不清楚为什么会出现这种情况。

谢谢你

+0

基本上[]符号访问列表的一个片段,而负整数给出列表末尾的数字。 错误是,因为你必须分配itterables,在这种情况下b [-1:-1] = b [-1:-2] = [] – Dschoni 2014-09-29 12:29:55

这是经典的字符串/数组切片问题。 当你做b[-1:-1]它说给我一个字符串从倒数第二个元素倒数第二个元素在这种情况下是空的。并分配/替换该列表与新列表[5]。

其他选项也一样。

最后一条语句

b[-1:-1]=5 

说,给我一个名单,并为其分配elememt。所以类型不匹配会发生错误。

+0

但不应该使用'b [-1:-3] = [5]'给我一个错误,因为我正在寻找将单个元素放入包含2个元素的字符串中?我不明白这部分是如何工作的。 – user131983 2014-09-29 12:48:42

+1

斯普利特总是从左到右工作,第一个参数应该少于返回空列表的第二个参数。所以b [-1:-3]说让我从第二个索引到第四个最后一个索引的字符串,但由于第二个参数是较小的空列表返回。相反,如果你写b [-3,-1]它会给你2个元素 – Abhi 2014-09-29 12:56:22