Python中实现对list做减法操作介绍


Posted in Python onJanuary 09, 2015

问题描述:假设我有这样两个list,

          一个是list1,list1 = [1, 2, 3, 4, 5]
          一个是list2,list2 = [1, 4, 5]
          我们如何得到一个新的list,list3,
          list3中包括所有不在list2中出现的list1中的元素。
          即:list3 = list1 ? list2
         
解决方案:我们可以用set(集合)操作
          list3 = list(set(list1) ? set(list2))
         
          set操作会将一个list转换成一个集合。
          假设:list_t = [1, 2, 3, 1]
          那么:list(set(list_t)) = [1, 2, 3]
          是的,重复的项会被删除。

其他方案:list3 = [i for i in list1 if i not in list2]       #可用于list分片
          这样写也很直观。
          但是在list很大的时候,没有set方法快。

额外知识:a = [[i,j] for i in range(2) for j in range(3)]
          这个和“其他方案”非常相似,
          都是在[]里面进行判断和计算。
          感觉很方便,至少比下面这样要方便、要快:
          a = []
          for i in range(2):
              for j in range(3):
                  a.append([i,j])

某些问题:如果list_tmp = [[1,2],[2,3]]
          即list里面不是单独的元素组成,而是list,
          那么set(list_tmp)会出问题。

还要研究:hash函数

Python 相关文章推荐
python网络编程学习笔记(10):webpy框架
Jun 09 Python
跟老齐学Python之大话题小函数(1)
Oct 10 Python
Python的Flask框架中@app.route的用法教程
Mar 31 Python
Python方法的延迟加载的示例代码
Dec 18 Python
通过python顺序修改文件名字的方法
Jul 11 Python
简单了解Django ContentType内置组件
Jul 23 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
Django表单提交后实现获取相同name的不同value值
May 14 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
python中random.randint和random.randrange的区别详解
Sep 20 Python
Python Serial串口基本操作(收发数据)
Nov 06 Python
python的dict判断key是否存在的方法
Dec 09 Python
python base64 decode incorrect padding错误解决方法
Jan 08 #Python
Python中字符编码简介、方法及使用建议
Jan 08 #Python
Python实现一个简单的MySQL类
Jan 07 #Python
python实现多线程暴力破解登陆路由器功能代码分享
Jan 04 #Python
Python中对列表排序实例
Jan 04 #Python
Python实现爬取知乎神回复简单爬虫代码分享
Jan 04 #Python
Python连接mssql数据库编码问题解决方法
Jan 01 #Python
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
基于mysql的论坛(2)
2006/10/09 PHP
php自动更新版权信息显示的方法
2015/06/19 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
cument.execCommand()用法深入理解
2012/12/04 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
微信小程序开发实战教程之手势解锁
2016/11/18 Javascript
vue组件间通信解析
2017/03/01 Javascript
Vuejs实现带样式的单文件组件新方法
2017/05/02 Javascript
微信小程序 图片上传实例详解
2017/05/05 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
JavaScript实现页面中录音功能的方法
2019/06/04 Javascript
node获取客户端ip功能简单示例
2019/08/24 Javascript
vue3.0生命周期的示例代码
2020/09/24 Javascript
python dict 相同key 合并value的实例
2019/01/21 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
如何用canvas实现在线签名的示例代码
2018/07/10 HTML / CSS
健身场所或家用健身设备:Life Fitness
2017/11/01 全球购物
高中生毕业学习总结的自我评价
2013/11/14 职场文书
历史系自荐信范文
2013/12/24 职场文书
装修致歉信
2014/01/15 职场文书
《挑山工》的教学反思
2014/02/16 职场文书
房屋买卖协议书范本
2014/04/10 职场文书
文化建设工作方案
2014/05/12 职场文书
绿色环保口号
2014/06/12 职场文书
自我查摆剖析材料
2014/10/11 职场文书
2016年先进班集体事迹材料
2016/02/26 职场文书
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL