【发布时间】:2019-10-25 14:06:00
【问题描述】:
我在 Python 3.7.x 中调用一个函数并将一个列表传递给它。我确实不想要修改列表。在函数内部,我复制列表并对其进行修改。
函数完成后,传递给函数的原始列表已被修改。为什么会发生这种情况,我该如何预防?
这里是代码
def append_string(alist, astring):
a_new_list = alist
a_new_list.append(astring)
return a_new_list
my_list = ["a", "b"]
my_string = "c"
my_new_list = append_string(my_list, my_string)
print(my_list)
print(my_new_list)
这是输出。请注意,my_list 已被修改。
['a', 'b', 'c']
['a', 'b', 'c']
我希望 my_list 保持不变,而 my_new_list 包含值的串联。
【问题讨论】:
标签: python-3.x