前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python中DEL语句的运用

Python中DEL语句的运用

作者头像
可定
发布2021-04-25 15:43:59
2.4K0
发布2021-04-25 15:43:59
举报
文章被收录于专栏:细嗅蔷薇细嗅蔷薇

这是菜鸟教程关于del语句的描述

代码语言:javascript
复制
您也可以使用del语句删除一些对象的引用。
del语句的语法是:
del var1[,var2[,var3[....,varN]]]
您可以通过使用del语句删除单个或多个对象的引用。例如:
del var
del var_a, var_b

以下是这位仁兄关于del语句的描述(网址:python中del语句

代码语言:javascript
复制
有一种方式可以从列表按照给定的索引而不是值来移除一个元素: 那就是 del 语句。
它不同于会返回一个值的 pop() 方法。
del 语句也可以用来从列表中移除切片或者清空整个python列表(我们之前用过的方式是将一个空列表赋值给指定的切片)。 例如:

>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]
del 也可以被用来删除整个变量

此后再引用 a 时会报错(直到另一个值被赋给它)。我们会在后面了解到 del 的其他用法。

看到这里还是很疑惑,特别是“del 也可以被用来删除整个变量”这句,不知道和C++的free有什么区别。下面看了这位的,才稍微懂了一点(网址:Python中的del用法

代码语言:javascript
复制
python中的del用法比较特殊,新手学习往往产生误解,弄清del的用法,可以帮助深入理解python的内存方面的问题。

python的del不同于C的free和C++的delete。

由于python都是引用,而python有GC机制,所以,del语句作用在变量上,而不是数据对象上。

if __name__ == '__main__':  
    a = 1       # 对象 1 被 变量a引用,对象1的引用计数器为1
    b = a       # 对象1 被变量b引用,对象1的引用计数器加1
    c = a       # 1对象1 被变量c引用,对象1的引用计数器加1
    del a     # 删除变量a,解除a对1的引用
    del b     # 删除变量b,解除b对1的引用
    print(c)  # 最终变量c仍然引用1

del删除的是变量,而不是数据。

if __name__ == '__main__':  
    li = [1, 2, 3, 4, 5]
    # 列表本身不包含数据1,2,3,4,5,而是包含变量:li[0] li[1] li[2] li[3] li[4]   
    first = li[0]     # 拷贝列表,也不会有数据对象的复制,而是创建新的变量引用  
    del li[0]
    print(li)      # 输出[2, 3, 4, 5]  
    print(first)   # 输出 1 

原来,del删除的是变量,而不是数据。del删除a0变量,但是a0中存储的变量才能不会消失。

另外,关于这句 first = li[0] 拷贝列表,也不会有数据对象的复制,而是创建新的变量引用,通俗来讲,无论是 first = li[0] 这种拷贝列表,还是del li[0]这种del语句,都不会对数据造成影响,复制和删除的仅仅是那份引用而已。

版权所有:可定博客 © WNAG.COM.CN

本文标题:《Python中DEL语句的运用》

本文链接:https://cloud.tencent.com/developer/article/1817666

特别声明:除特别标注,本站文章均为原创,本站文章原则上禁止转载,如确实要转载,请电联:wangyeuuu@qq.com,尊重他人劳动成果,谢过~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档