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求两个文本文件以行为单位的交集、并集与差集的方法
Jun 17 Python
python读取TXT到数组及列表去重后按原来顺序排序的方法
Jun 26 Python
Python3连接SQLServer、Oracle、MySql的方法
Jun 28 Python
python数据处理 根据颜色对图片进行分类的方法
Dec 08 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
python输出决策树图形的例子
Aug 09 Python
Python datetime包函数简单介绍
Aug 28 Python
python同步两个文件夹下的内容
Aug 29 Python
Python列表list常用内建函数实例小结
Oct 22 Python
Python常用编译器原理及特点解析
Mar 23 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
Python学习之os模块及用法
Jun 03 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也可以?成Shell Script
2006/10/09 PHP
百度地图经纬度转换到腾讯地图/Google 对应的经纬度
2015/08/28 PHP
ThinkPHP使用Ueditor的方法详解
2016/05/20 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
JavaScript 创建对象
2009/07/17 Javascript
jQuery获取css z-index在各种浏览器中的返回值
2010/09/15 Javascript
Json对象替换字符串占位符实现代码
2010/11/17 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
vuejs事件中心管理组件间的通信详解
2017/08/09 Javascript
基于vue-cli vue-router搭建底部导航栏移动前端项目
2018/02/28 Javascript
JavaScript中join()、splice()、slice()和split()函数用法示例
2018/08/24 Javascript
JavaScript类型相关的常用操作总结
2019/02/14 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
vue中axios的二次封装实例讲解
2019/10/14 Javascript
react基本安装与测试示例
2020/04/27 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
VUE中V-IF条件判断改变元素的样式操作
2020/08/09 Javascript
JS中多层次排序算法的实现代码
2021/01/06 Javascript
Django中提示消息messages的设置方式
2019/11/15 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
Django权限控制的使用
2021/01/07 Python
selenium如何定位span元素的实现
2021/01/13 Python
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
adidas瑞典官方网站:购买阿迪达斯鞋子和运动服
2019/12/11 全球购物
销售工作岗位职责
2013/12/24 职场文书
中药学自荐信
2014/06/15 职场文书
员工团队活动方案
2014/08/28 职场文书
公司离职证明样本
2014/09/13 职场文书
销售经理工作失职检讨书
2014/10/24 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python