微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 中关于“删除”的底层概念

如何解决Python 中关于“删除”的底层概念

我创建了一个变量 temp = [10]

然后我将 temp 放入另一个列表变量 ls

之后,我使用 del temp 删除 temp 变量

但是,我检查了 ls 并且仍然发现 [10]ls

在我的直觉中,ls 应该打印为 [],但事实并非如此。

想问一下Python中del的深层次概念,也许还有Python中按引用复制和按值复制的一些信息

我的代码

temp = [10]
print('id of temp:',id(temp))

ls = [temp]
print('ls before del:',ls)  # ls before del: [[10]]

del temp
print('ls after del:',ls)  # ls after del: [[10]]
print('id of ls[0]:',id(ls[0]))

解决方法

我不建议在列表中使用 del 而是使用 pop 或 remove。

删除

nums = ['1','2']
# remove '2'
nums.remove('2')

输出

['1']

弹出

nums = ['1','2']
# remove with index of 0
nums.pop(0)

输出

['2']

您的案例

firstList = [1]
secondList = [firstList] #[[1]]
print(secondList.pop(0))
#or
print(secondList.remove(firstList))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。