Python 为什么这个函数要修改它之外的变量?
我有一个从列表中删除第二个数据值的函数(简化)。然而,当执行函数时,原始列表似乎被修改了,即使我只是对函数中的变量做了一些事情Python 为什么这个函数要修改它之外的变量?,python,python-3.x,function,Python,Python 3.x,Function,我有一个从列表中删除第二个数据值的函数(简化)。然而,当执行函数时,原始列表似乎被修改了,即使我只是对函数中的变量做了一些事情 print(data_values) def remove_2(data): data.pop(2) return data new_data = remove_2(data_values) print(data_values) >>>['a', 'b', 'c', 'd'] >>> ['a', 'b', 'd
print(data_values)
def remove_2(data):
data.pop(2)
return data
new_data = remove_2(data_values)
print(data_values)
>>>['a', 'b', 'c', 'd']
>>> ['a', 'b', 'd']
我两次都在打印原始数据值,但第二次是修改版本,即使只修改了函数中的变量。thepop()
函数删除具有给定索引的元素您要做的是从原始列表中删除具有索引2的元素,然后使用另一个列表显示它
print(data_values)
def remove_2(data):
data.pop(2)
return data
new_data=data_values[:]
new_data = remove_2(new_data)
print(data_values)
print(new_data)
如果不想更改默认列表,则应使用另一个列表听起来您可以使用的。可能是的副本。查看此链接以获取有关Python变量的详细说明您不是在修改变量,而是在修改对象