【发布时间】:2014-02-14 14:09:07
【问题描述】:
以下代码:
file_path = 'some_path/data.txt'
exp = loadtxt(file_path)
signal_exp = []
signal_exp.append(exp[1, :])
signal_exp_new = []
signal_exp_new.append(signal_exp[0])
signal_exp_new[0][0:800] = 0.0
将导致 signal_exp 在前 800 个元素以及 signal_exp_new 处被覆盖。我找到了解决方案,但我不明白为什么下一个按预期工作(至少对我来说):
file_path = 'some_path/data.txt'
exp = loadtxt(file_path)
signal_exp = []
signal_exp.append(exp[0, :].tolist())
signal_exp_new = []
signal_exp_new.append(signal_exp[0][:])
for l in range(800):
signal_exp_new[0][l] = 0.0
谁能给我一个解释,为什么在后一种情况下,原始列表没有被覆盖,但在第一种情况下却被覆盖了?
【问题讨论】:
-
因为
[:]创建了一个复制完整列表的切片。