首页 > 解决方案 > 有人可以解释我的 Python 数组发生了什么吗?

问题描述

我正在初始化这两个列表,并尝试以两种不同的方式替换每个列表中的前 3 个项目。

b = c = [2, 4, 6, 8, 10, 12]
print(b)
b[0] = 3; b[1] = 6; b[2] = 9
print(b)
c[0:2] = [3,6,9]
print(c)

但是当我运行代码时,我得到了下面奇怪的输出。我得到了我对“b”的期望,但完全符合“c”的期望。有人可以向我解释为什么会这样吗?

b = [2, 4, 6, 8, 10, 12]
c = [2, 4, 6, 8, 10, 12]
new b = [3, 6, 9, 8, 10, 12]
new c = [3, 6, 9, 9, 8, 10, 12]

标签: pythonpython-3.x

解决方案


c[0:2]表示前两个元素,所以基本上你要替换[3, 6][3, 6, 9]. 你应该使用

c[0:3] = [3, 6, 9]
c = [3, 6, 9, 8, 10, 12]

推荐阅读