我是Python的新手,有人可以告诉我这两个代码块的输出之间的区别:
1.
>> example = [1, 32, 1, 2, 34]
>> example[4:0] = [122]
>> example
[1, 32, 1, 2, 122, 34]
Run Code Online (Sandbox Code Playgroud)
2.
>> example = [1, 32, 1, 2, 34]
>> example[4:1] = [122]
>> example
[1, 32, 1, 2, 122, 34]
Run Code Online (Sandbox Code Playgroud)
您的切片在索引处给出一个空列表,4因为上限小于下限:
>>> example[4:0]
[]
>>> example[4:1]
[]
Run Code Online (Sandbox Code Playgroud)
此列表将替换此空列表[122].效果与做:
>>> example.insert(4, 122)
Run Code Online (Sandbox Code Playgroud)
请记住,带有一个元素的空列表和列表没有什么特别之处,即使它们在使用它们时所具有的效果在开始时并不那么明显.在Python的教程有更多的细节.
这里没有什么问题。输出是相同的,因为两个代码片段中唯一不同的行是
example[4:0] = [122]
Run Code Online (Sandbox Code Playgroud)
和
example[4:1] = [122]
Run Code Online (Sandbox Code Playgroud)
他们都会将值 122 添加并分配给索引 4 之后的元素(这里假设大小为一 == 值的列表)。因为在这两种情况下切片上边界的数字都小于 4,它们没有任何作用。