如果边界相等,则切片间隔为空,因此分配给它应该分配给任何内容,并且列表应该保持不变,对吗?
>>> l = [0, 1, 2, 3]
>>> l[1:1]
[] # (as expected)
>>> l[1:1] = [4]
>>> l
[0, 4, 1, 2, 3]
# why did 4 get in there?
最佳答案
assign to nothing, and the list should remain unmodified
不,它不会用该值替换任何内容。之前,l[1]
和 l[1]
之间没有任何内容,现在是 E
。您也可以尝试
l = ['a', 'b', 'c', 'd']
l[1:3]='E'
这将导致 l
为 ['a', 'E', 'd']
,而不是 ['a', 'E', 'E', 'd']
:您命名的切片将被值替换。如果你这样做
l = ['a', 'b', 'c', 'd']
l[1:2]=['E','F','G']
这将导致 l
为 ['a', 'E', 'F', 'G', 'c', 'd']
。
关于python - 具有相等边界的切片分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57210892/