以下是代码示例:
有人能给我解释一下为什么在后一种情况下,原始列表没有被覆盖,而在第一种情况下却被覆盖了吗?
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
有人能给我解释一下为什么在后一种情况下,原始列表没有被覆盖,而在第一种情况下却被覆盖了吗?
[:]
创建了一个复制完整列表的切片。 - njzk2