[英]python array reference not removing element from the array
我在方法中向数组引用添加和删除元素,我发现虽然元素被添加到引用数组中,但它没有被删除。
def check(arr):
arr.append(1)
arr = arr[:-1]
arr = [1]
check(arr)
print(arr)
给出 output [1, 1]
我想知道为什么arr = arr[:-1]
没有从引用的数组中删除
编辑:很多人都在发布正确的解决方案,我不是在寻找解决方案,而是解释 python 为什么以及如何创建局部变量而不是覆盖全局 scope 以及它如何以相同的名称维护两者!
你不返回任何东西。 function 中的 arr 在本地 scope 中,所以全局 scope arr 不会更新
def check(arr):
arr.append(1)
return arr[:-1]
arr = [1]
arr = check(arr)
print(arr)
或者,它可以使用全局变量来完成:
def check_arr():
global arr
arr.append(1)
arr = arr[:-1]
arr = [1]
check_arr()
print(arr)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.