关于小悟志网站地图归档友情链接联系Feed

云上小悟 + 

首页 » InfoTech »

清空Python List的三种方式比较

InfoTech
2016年11月24日 / 348次阅读
标签:麦新杰用Python

文章《清空Python List的三种方式比较》的特色图片

Python代码中,有三种方式可以对一个list进行清空,如下:

 

mylist = []

mylist[:] = [] # same as mylist.clear()

del mylist

 

以上三种方式各有不同,分析如下:

1, 使用mylist = []这种方式,其实不是清空,而是将mylist重新指向了一个新的内存地址,用函数id()一试便知;这种写法,其实是定义一个list的写法;

>>>
>>> list1 = [1,2,3,4,5]
>>> id(list1)
10688840
>>> list1 = []
>>> id(list1)
10689288
>>>

 

2, 使用mylist[:] = []这种方式,是真正的清空,mylist没有指向另外的地址;Python官方教程里面给出的用例,使用的是这种方式;这种方式让你的程序节约内存;

虽然这种方法节约内存,但是要特别注意,如果是这样:

anolist.append(mylist)
mylist[:] = []
# anolist刚刚append的元素也会被清空

anolist将mylist作为一个元素加入,但是实际上,加入的是id(mylist),后面对mylist进行清空,这个操作同样会影响到anolist的这个元素。

推荐阅读:Python的深拷贝和浅拷贝

 

3, 使用del mylist这种方式,也是清空,但是同时删除了mylist这个变量,后面的程序再使用mylist时会出现NameError的异常。

 

本文链接:http://www.maixj.net/ict/python-list-13658
云上小悟 麦新杰(QQ:1093023102)

相关文章

评论是美德

无力满足评论实名制,评论对非实名注册用户关闭,有事QQ:1093023102.


前一篇:
后一篇:

栏目精选


©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有 备案号:苏ICP备14045477号-1

网站二维码
拍拍贷
go to top