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中实现指定时间调用函数示例代码
Sep 08 Python
python链接oracle数据库以及数据库的增删改查实例
Jan 30 Python
python实现蒙特卡罗方法教程
Jan 28 Python
python批量修改ssh密码的实现
Aug 08 Python
Python循环实现n的全排列功能
Sep 16 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 Python
parser.add_argument中的action使用
Apr 20 Python
Python HTMLTestRunner库安装过程解析
May 25 Python
Python 列表推导式需要注意的地方
Oct 23 Python
利用Python发送邮件或发带附件的邮件
Nov 12 Python
Python使用Web框架Flask开发项目
Jun 01 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
德生1994机评
2021/03/02 无线电
PHP实现域名whois查询的代码(数据源万网、新网)
2010/02/22 PHP
PHP中绘制图像的一些函数总结
2014/11/19 PHP
PHP文件上传之多文件上传的实现思路
2016/01/27 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
js实现动态添加、删除行、onkeyup表格求和示例
2013/08/18 Javascript
jquery等待效果示例
2014/05/01 Javascript
js实现键盘操作实现div的移动或改变的原理及代码
2014/06/23 Javascript
常用DOM整理
2015/06/16 Javascript
异步JavaScript编程中的Promise使用方法
2015/07/28 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
javascript DOM的详解及实例代码
2017/03/06 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
vue微信分享到朋友圈 vue微信发送给好友
2018/11/28 Javascript
详解javascript中var与ES6规范中let、const区别与用法
2020/01/11 Javascript
Vue是怎么渲染template内的标签内容的
2020/06/05 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
python2.7实现FTP文件下载功能
2018/04/15 Python
python带参数打包exe及调用方式
2019/12/21 Python
美国著名童装品牌:OshKosh B’gosh
2016/08/05 全球购物
无畏的旅行:Intrepid Travel
2017/12/20 全球购物
瑞典多品牌连锁店:Johnells
2021/01/13 全球购物
中学教师岗位职责
2013/11/26 职场文书
法制宣传实施方案
2014/03/13 职场文书
工作目标责任书
2014/07/23 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
2015年元旦主持词开场白
2014/12/14 职场文书
Python手拉手教你爬取贝壳房源数据的实战教程
2021/05/21 Python
详解使用 CSS prefers-* 规范提升网站的可访问性与健壮性
2021/05/25 HTML / CSS
请求模块urllib之PYTHON爬虫的基本使用
2022/04/08 Python
Python pyecharts案例超市4年数据可视化分析
2022/08/14 Python