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的Django框架来制作一个RSS阅读器
Jul 22 Python
Python调用系统底层API播放wav文件的方法
Aug 11 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
python实现音乐下载的统计
Jun 20 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 Python
如何给Python代码进行加密
Jan 10 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
Feb 29 Python
Python爬虫程序架构和运行流程原理解析
Mar 09 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
Jul 02 Python
Python 整行读取文本方法并去掉readlines换行\n操作
Sep 03 Python
使用Pytorch实现two-head(多输出)模型的操作
May 28 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列出一个目录下的所有文件的代码
2012/10/09 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
微信支付开发教程(一)微信支付URL配置
2014/05/28 PHP
Yii中使用PHPExcel导出Excel的方法
2014/12/26 PHP
PHP实现截取中文字符串不出现?号的解决方法
2016/12/29 PHP
PHP设计模式之模板方法模式实例浅析
2018/12/20 PHP
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
关于jquery的多个选择器的使用示例
2013/10/18 Javascript
jQuery插件开发的两种方法及$.fn.extend的详解
2014/01/16 Javascript
JavaScript的Date()方法使用详解
2015/06/09 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
js利用递归与promise 按顺序请求数据的方法
2019/08/30 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
[01:35]辉夜杯战队访谈宣传片—iG.V
2015/12/25 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
python 简单搭建阻塞式单进程,多进程,多线程服务的实例
2017/11/01 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
Tensorflow 查看变量的值方法
2018/06/14 Python
Python Grid使用和布局详解
2018/06/30 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
python实现蒙特卡罗方法教程
2019/01/28 Python
python自带tkinter库实现棋盘覆盖图形界面
2019/07/17 Python
python 内置函数汇总详解
2019/09/16 Python
新西兰珠宝品牌:Michael Hill
2017/09/16 全球购物
Shopee越南:东南亚与台湾电商平台
2019/02/03 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
自我检讨报告
2015/01/28 职场文书
中考学习决心书
2015/02/04 职场文书
节约用电倡议书
2015/04/28 职场文书
高一数学教学反思
2016/02/18 职场文书