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中动态获取对象的属性和方法的教程
Apr 09 Python
通过数据库向Django模型添加字段的示例
Jul 21 Python
tensorflow实现对图片的读取的示例代码
Feb 12 Python
Pycharm 创建 Django admin 用户名和密码的实例
May 30 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
Python 共享变量加锁、释放详解
Aug 28 Python
python 导入数据及作图的实现
Dec 03 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 Python
Python学习工具jupyter notebook安装及用法解析
Oct 23 Python
Python PIL按比例裁剪图片
May 11 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 高效率写法 推荐
2010/02/21 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
php计算两个整数的最大公约数常用算法小结
2015/03/05 PHP
JavaScript 基础问答三
2008/12/03 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
2008/12/25 Javascript
JS代码优化技巧之通俗版(减少js体积)
2011/12/23 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
javascript中使用正则表达式清理table样式的代码
2020/04/01 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
Node.js利用断言模块assert进行单元测试的方法
2017/09/28 Javascript
React Native 通告消息竖向轮播组件的封装
2020/08/25 Javascript
浅谈Vue响应式(数组变异方法)
2018/05/07 Javascript
js中时间格式化的几种方法
2018/07/22 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
2019/05/04 jQuery
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
对python中的乘法dot和对应分量相乘multiply详解
2018/11/14 Python
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
骨干教师培训制度
2014/01/13 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
小学生评语集锦
2014/04/18 职场文书
期末评语大全
2014/05/04 职场文书
环保建议书200字
2014/05/14 职场文书
党委书记群众路线对照检查材料思想汇报
2014/10/04 职场文书
收款委托书
2014/10/14 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
MySQL优化及索引解析
2022/03/17 MySQL