Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么这个函数要修改它之外的变量?_Python_Python 3.x_Function - Fatal编程技术网

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']
我两次都在打印原始数据值,但第二次是修改版本,即使只修改了函数中的变量。

the
pop()
函数删除具有给定索引的元素您要做的是从原始列表中删除具有索引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变量的详细说明您不是在修改变量,而是在修改对象