del 的用法问题
>> a = b =>>> a
>>> b
>>> del a
>>> a
>>> b
为什么b没有用del语句也会删除?? 本帖最后由 Twilight6 于 2020-6-1 23:23 编辑
因为 a , b 两个 '别名'都是指向列表 即 a 是 列表 的'外号'b 也是 的'外号' 他们指向的都是同一个 '人'
当拥有这个'外号'的'人'发生了变化,那么和这个'人'关联的一切也会发生改变,因为他们都是指着这个人
上面这样打比方不懂会不会更容易理解些,你也可以用 Python 内置函数 id() 来查看他们的 id 地址是否相同,如果相同,那么del 删除了这个列表,就等于直接删除了他的 id 地址
a = b =
print(id(a))
print(id(b))
del a[你要删除的元素编号] 因为a跟b指向同一个地址,修改a后b也会跟着改变,需要用分片表达式复制序列[:]
>>> a =
>>> b = a[:]
>>> a
>>> b
>>> del a
>>> a
>>> b
>>> Twilight6 发表于 2020-6-1 23:11
因为 a , b 两个 '别名'都是指向列表 即 a 是 列表 的'外号'b 也是 的' ...
谢谢,大概懂了 花粉 发表于 2020-6-2 20:55
因为a跟b指向同一个地址,修改a后b也会跟着改变,需要用分片表达式复制序列[:]
>>> a =
>>> b...
谢谢,大概懂了
页:
[1]