Python 列表的清空方式


Posted in Python onJanuary 13, 2020

情况列表的操作:

del list[:]

list=[]

list[:]=[]

def func(L):                                  
  L.append(1)
  print L
  #L[:]=[]
  #del L[:]
  L = []
  print L
 
L=[]
func(L)
print L

输出结果:

[1]

[]

[1]

分析:L是可变数据类型,L作为参数,函数内对L的改变,是可以反映到函数外的L中的,执行L.append(1),是在操作,函数外L所占据的那块内存,然后执行L =[],(函数内的L),想当于L指向了另外一个空间。所以,func(L),print L,输出[1]。

其实函数的本意是将参数L指向的内存清空,用L=[],并不能清空L指向的内存

def func(L):
  L.append(1)                                 
  print L
  L[:]=[]
  #del L[:]
  #L = []
  print L
 
L=[]
func(L)
print L

输出结果:

[1]
[]
[]

L[:]=[]:把L对应的内存清空

def func(L): 

  L.append(1)
  print L
  #L[:]=[]
  del L[:]
  #L = []
  print L
 
L=[]
func(L)
print L

分析:

del L[:] 的效果跟L[:]=[]的效果是一样的。

python 赋值,往往是通过指针完成的,a=b,只是让a指向了b,并未把b的内容拷贝到a

def func(L):                                  
  L.append(1)
  print L
  print id(L)
  #L[:]=[]
  #del L[:]
  L = []
  print id(L)
  print L
 
L=[]
func(L)
print L

输出结果:

31460240

31460168

很明显:通过赋值L=[]后,L指向的内存完全不一致了。

类似于c++的引用赋值。

Python 赋值都是引用赋值,相当于使用指针来实现的另一个例证

list =[]                                    
next = [None,None]
for i in range(10):
  next[0] = i 
  #print id(i)
  #print id(next[0])
  next[1] = i 
  #print id(next)
  list.append(next)
 
print list

输出结果:

[[9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9]]

跟我们想要的结果不一致

list.append(next),仅仅是把next的地址放到list 里面

我们整个for 循环就使用了一个next,只是每次for循环,都在初始的next上进行操作,本次的操作会覆盖上次的结果

list =[]                                    
next = [None,None]
for i in range(10):
  next[0] = i 
  #print id(i)
  #print id(next[0])
  next[1] = i 
  #print id(next)
  list.append(next)
 
print list
print id(list[0])
print id(list[1])

输出结果:

[[9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9], [9, 9]]

36166472

36166472

解决办法,每次for 循环都重新分配空间

list =[]                                    
for i in range(10):
  next = [None,None]
  next[0] = i 
  #print id(i)
  #print id(next[0])
  next[1] = i 
  #print id(next)
  list.append(next)
 
print list
print id(list[0])
print id(list[1])

输出结果:

[[0, 0], [1, 1], [2, 2], [3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9]]

15060360

15059712

以上这篇Python 列表的清空方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中from module import * 的一个坑
Jul 20 Python
Python列表append和+的区别浅析
Feb 02 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
利用Python破解验证码实例详解
Dec 08 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
在django中,关于session的通用设置方法
Aug 06 Python
python切片(获取一个子列表(数组))详解
Aug 09 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
Django REST Swagger实现指定api参数
Jul 07 Python
python中doctest库实例用法
Dec 31 Python
Python图像处理之膨胀与腐蚀的操作
Feb 07 Python
用python 绘制茎叶图和复合饼图
Feb 26 Python
Python SSL证书验证问题解决方案
Jan 13 #Python
python清空命令行方式
Jan 13 #Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 #Python
Python开发之基于模板匹配的信用卡数字识别功能
Jan 13 #Python
python中的itertools的使用详解
Jan 13 #Python
python3读取csv文件任意行列代码实例
Jan 13 #Python
pytorch程序异常后删除占用的显存操作
Jan 13 #Python
You might like
php中计算程序运行时间的类代码
2012/11/03 PHP
php实现的百度搜索某地天气的小偷代码
2014/04/23 PHP
php判断GIF图片是否为动画的方法
2020/09/04 PHP
php中switch语句用法详解
2015/08/17 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
js中switch case循环实例代码
2013/12/30 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
被遗忘的javascript的slice() 方法
2015/04/20 Javascript
AngularJS实现树形结构(ztree)菜单示例代码
2016/09/18 Javascript
bootstrap日历插件datetimepicker使用方法
2016/12/14 Javascript
js中数组插入、删除元素操作的方法
2017/02/15 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
JavaScript面向对象精要(上部)
2017/09/12 Javascript
JavaScript继承与聚合实例详解
2019/01/22 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
[55:56]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.22
2019/09/05 DOTA
Python实现基于权重的随机数2种方法
2015/04/28 Python
详解多线程Django程序耗尽数据库连接的问题
2018/10/08 Python
python操作kafka实践的示例代码
2019/06/19 Python
使用OpenCV实现仿射变换—缩放功能
2019/08/29 Python
python中必要的名词解释
2019/11/20 Python
如何在django中运行scrapy框架
2020/04/22 Python
德购商城:德国进口直邮商城
2017/06/13 全球购物
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
澳大利亚儿童精品仓库:Goo & Co.
2019/06/20 全球购物
bonprix匈牙利:女士、男士和儿童服装
2019/07/19 全球购物
后勤副校长自我鉴定
2013/10/13 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
《英英学古诗》教学反思
2014/04/11 职场文书
2014年党务公开方案
2014/05/08 职场文书
企业理念标语
2014/06/09 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2015年度校学生会工作总结报告
2015/05/23 职场文书
幽灵公主观后感
2015/06/09 职场文书
Java异常体系非正常停止和分类
2022/06/14 Java/Android