我正在学习 Python 并且对 Slice 的工作方式有基本的了解,但是有一个特定的代码块我很难掌握:
L = [2,4,6,8,0]
L[0:3] = [2,4,6,8]
print L[4]
这个输出是8,我觉得很奇怪;当我将第二行读为“将列表的前 4 个元素转换为 2、4、6、8”时,我希望它仍然为 0。这仍然会留下 [2,4,6,8,0] 的列表,这显然不会发生。如果有人能解释为什么 Slice 会这样,我将不胜感激!
最佳答案
>>> L = [2,4,6,8,0]
>>> L[0:3] = [2,4,6,8]
>>> L
[2, 4, 6, 8, 8, 0]
这改变了列表,L[0:3]
是 [2, 4, 6]
,所以你在 6 之后追加另一个 8,这就是第四个值的原因现在是 8
:
>>> L[4]
8
看看这张图:
所以也许您想要的是 L[0:4]
或 L[:4]
。希望对您有所帮助。
关于python - (Python) 列表中切片函数的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42575574/