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实现批量读取word中表格信息的方法
Jul 30 Python
Python实现Smtplib发送带有各种附件的邮件实例
Jun 05 Python
Python-OpenCV基本操作方法详解
Apr 02 Python
对tf.reduce_sum tensorflow维度上的操作详解
Jul 26 Python
Python 创建新文件时避免覆盖已有的同名文件的解决方法
Nov 16 Python
如何更优雅地写python代码
Jul 02 Python
简单了解Django ContentType内置组件
Jul 23 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
基于python实现微信好友数据分析(简单)
Feb 16 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
matplotlib绘制鼠标的十字光标的实现(内置方式)
Jan 06 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
php框架Phpbean说明
2008/01/10 PHP
PHP 开发环境配置(测试开发环境)
2010/04/28 PHP
php写的简易聊天室代码
2011/06/04 PHP
PHP学习散记_编码(json_encode 中文不显示)
2011/11/10 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
关于firefox的ElementTraversal 接口 使用说明
2010/11/11 Javascript
thinkphp 表名 大小写 窍门
2015/02/01 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
在HTML中插入JavaScript代码的示例
2015/06/03 Javascript
jQuery获取cookie值及删除cookie用法实例
2016/04/15 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
详解vue-cli 脚手架项目-package.json
2017/07/04 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
vue实现模态框的通用写法推荐
2018/02/26 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
2019/11/18 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
详解Python中的__init__和__new__
2014/03/12 Python
Python中的魔法方法深入理解
2014/07/09 Python
python统计cpu利用率的方法
2015/06/02 Python
python开发之IDEL(Python GUI)的使用方法图文详解
2015/11/12 Python
python numpy元素的区间查找方法
2018/11/14 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
使用tkinter实现三子棋游戏
2021/02/25 Python
家居饰品店创业计划书
2014/01/31 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
爱我中华演讲稿
2014/05/20 职场文书
2014年信访工作总结
2014/11/17 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript
Java设计模式中的命令模式
2022/04/28 Java/Android