【发布时间】:2022-01-15 16:12:38
【问题描述】:
我在方法中向数组引用添加和删除元素,我发现虽然元素被添加到引用数组中,但它没有被删除。
def check(arr):
arr.append(1)
arr = arr[:-1]
arr = [1]
check(arr)
print(arr)
给出输出[1, 1] 我想知道为什么arr = arr[:-1] 没有从引用的数组中删除
编辑:很多人都在发布正确的解决方案,我不是在寻找解决方案,而是解释 python 为什么以及如何创建局部变量而不是覆盖全局范围以及它如何通过同名!
【问题讨论】:
-
arr = arr[:-1]这将创建一个名为arr的新 局部变量。它不影响原来的论点。 -
arr[:] = arr[:-1]或 (针对这种特殊情况)del arr[-1]
标签: python arrays list reference