【发布时间】:2021-06-20 14:59:16
【问题描述】:
arr = [1, 2, 3, 4, 5]
arr[1:3] = 'ABCD'
arr
[1, 'A', 'B', 'C', 'D', 4, 5]
没错,这段代码没用。我认为没有人使用这样的 python 列表。但我只是因为好奇而想知道结果。
我可以直观地知道一些结果。
旧的
arr[1:3](2, 3) 已消失并被字符串'ABCD'依次替换。
但只是关于结果的事实,我无法理解它是如何工作的。
我可以得到一些提示或文档来理解这个结果吗?
【问题讨论】:
-
foo[x:y] = z实际上等同于foo[:x] + list(z) + foo[y:],除了list(z)的元素是就地插入的,而不是构建一个新列表。 -
这能回答你的问题吗? How assignment works with Python list slice? 请注意,this answer 比接受的答案要彻底得多。
标签: python slice variable-assignment