在 Python 教程中,据说“所有切片操作都会返回一个包含所请求元素的新列表”。
>>>a = ['spam', 'eggs', 100, 1234]
>>>a[0:2] = [1, 12]
>>> a
[1, 12, 100, 1234]
如果所有的切片操作都返回一个新的列表,那么这个例子中的列表a是如何改变的呢?似乎只有右侧的切片操作返回一个新列表。
更新
我的意思是 a[:] 在 Python 中到底是什么,对新列表的引用 或对列表 a引用> 或其他任何东西。我感兴趣的是基本级别的实现,而不是行为。
最佳答案
这是切片:
b = a[0:2]
这是切片赋值:
a[0:2] = b
它们是不同的。后者会将 a
的 slice 部分替换为 b 的值。它们看起来非常相似,但用途不同。
关于python - 所有切片操作都返回一个新列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20422696/