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的lambda语句声明匿名函数的用法
Jul 01 Python
Python入门之三角函数sin()函数实例详解
Nov 08 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
python队列queue模块详解
Apr 27 Python
python 把列表转化为字符串的方法
Oct 23 Python
pyqt远程批量执行Linux命令程序的方法
Feb 14 Python
python实现转圈打印矩阵
Mar 02 Python
python实现倒计时小工具
Jul 29 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
anaconda python3.8安装后降级
Jun 11 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 Python
Python OpenCV之常用滤波器使用详解
Apr 07 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
Protoss兵种对照表
2020/03/14 星际争霸
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
php中引用&的用法分析【变量引用,函数引用,对象引用】
2016/12/12 PHP
tp5 sum某个字段相加得到总数的例子
2019/10/18 PHP
基于jQuery的图片剪切插件
2011/08/03 Javascript
基于jquery的不规则矩形的排列实现代码
2012/04/16 Javascript
js判断变量初始化的三种形式及推荐用的形式
2014/07/22 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
jQuery控制cookie过期时间的方法
2015/04/07 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
解决axios post 后端无法接收数据的问题
2019/10/29 Javascript
借助云开发实现小程序短信验证码的发送
2020/01/06 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
微信小程序实现点击导航标签滚动定位到对应位置
2020/11/19 Javascript
[01:29:46]DOTA2上海特级锦标赛C组资格赛#1 OG VS LGD第二局
2016/02/27 DOTA
跟老齐学Python之使用Python操作数据库(1)
2014/11/25 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
Pandas读取并修改excel的示例代码
2019/02/17 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
2019/04/15 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
2019/08/17 Python
Jupyter安装链接aconda实现过程图解
2020/11/02 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
四方通行旅游网:台湾订房、出国旅游
2017/09/20 全球购物
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
政治学求职信
2014/06/03 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
2015年乡镇财政工作总结
2015/05/19 职场文书
三十年同学聚会致辞
2015/07/28 职场文书
教师节随笔
2015/08/15 职场文书
如何用JS实现网页瀑布流布局
2021/04/24 Javascript