首页 > 解决方案 > 为什么删除分配给另一个变量的变量不会影响新变量?

问题描述

如果我做li = [1,2,3],然后做a = lia是分配给li,对不对?但是,当我这样做del li然后 printa时,它仍然显示[1,2,3]. 当我这样做li.append(4)并打印时a,为什么会显示[1,2,3,4]

我知道a没有复制li(因为该.copy()方法用于此),但为什么a仍会显示li曾经拥有的价值?

标签: pythonvariables

解决方案


del不删除变量del只删除name,垃圾收集器将(在它自己的时间)搜索没有被任何东西引用的变量,并正确地释放它们的内存。

在这种情况下,您分配名称a以引用该名称所引用的同一变量li。当您使用.append()时,它会修改变量,并且所有引用该变量的名称都将能够看到更改。当您del li删除 nameli时,它​​不会删除a仍然引用变量的 name 。因此,变量不会被释放和删除。


推荐阅读