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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python编程中字符串和列表的基本知识讲解
Oct 14 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
Python中运算符"=="和"is"的详解
Oct 08 Python
scrapy爬虫实例分享
Dec 28 Python
用Django写天气预报查询网站
Oct 21 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
Python logging日志模块 配置文件方式
Jul 12 Python
Python基于pillow库实现生成图片水印
Sep 14 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
Sep 29 Python
Python如何使用神经网络进行简单文本分类
Feb 25 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 error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
详解阿里云视频直播PHP-SDK接入教程
2020/07/09 PHP
两个Javascript小tip资料
2010/11/23 Javascript
JavaScript window.document的属性、方法和事件小结
2012/10/24 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
AngularJS自动表单验证
2016/02/01 Javascript
jquery实现具有收缩功能的垂直导航菜单
2016/02/16 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
jQuery实现移动端Tab选项卡效果
2017/03/15 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
详解如何从零开始搭建Express+Vue开发环境
2018/07/17 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
在vue中实现清除echarts上次保留的数据(亲测有效)
2020/09/09 Javascript
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
jQuery实现回到顶部效果
2020/10/19 jQuery
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
python制作爬虫并将抓取结果保存到excel中
2016/04/06 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
基于Python爬取爱奇艺资源过程解析
2020/03/02 Python
Python基于Hypothesis测试库生成测试数据
2020/04/29 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
详解css3使用transform出现字体模糊的解决办法
2020/10/16 HTML / CSS
海外淘书首选:AbeBooks
2017/07/31 全球购物
.NET初级开发工程师面试题
2014/04/18 面试题
学期自我评价
2014/01/27 职场文书
伊索寓言教学反思
2014/05/01 职场文书
普通话演讲稿
2014/09/03 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
2014乡党委副书记党建工作汇报材料
2014/11/02 职场文书
2014财务年终工作总结
2014/12/08 职场文书
故宫英文导游词
2015/01/31 职场文书
广播体操比赛主持词
2015/06/29 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书