Python实现两个list求交集,并集,差集的方法示例


Posted in Python onAugust 02, 2018

本文实例讲述了Python实现两个list求交集,并集,差集的方法。分享给大家供大家参考,具体如下:

在python中,数组可以用list来表示。如果有两个数组,分别要求交集,并集与差集,怎么实现比较方便呢?

当然最容易想到的是对两个数组做循环,即写两个for循环来实现。这种写法大部分同学应该都会,而且也没有太多的技术含量,本博主就不解释了。这里给大家使用更为装bility的一些方法。

老规矩,talk is cheap,show me the code

#!/usr/bin/env python
#coding:utf-8
'''
Created on 2016年6月9日
@author: lei.wang
'''
def diff(listA,listB):
 #求交集的两种方式
 retA = [i for i in listA if i in listB]
 retB = list(set(listA).intersection(set(listB)))
 print "retA is: ",retA
 print "retB is: ",retB
 #求并集
 retC = list(set(listA).union(set(listB)))
 print "retC1 is: ",retC
 #求差集,在B中但不在A中
 retD = list(set(listB).difference(set(listA)))
 print "retD is: ",retD
 retE = [i for i in listB if i not in listA]
 print "retE is: ",retE
def main():
 listA = [1,2,3,4,5]
 listB = [3,4,5,6,7]
 diff(listA,listB)
if __name__ == '__main__':
 main()

让code run起来

retA is:  [3, 4, 5]
retB is:  [3, 4, 5]
retC1 is:  [1, 2, 3, 4, 5, 6, 7]
retD is:  [6, 7]
retE is:  [6, 7]

结合代码来看,大体上是两种思路:

1.使用列表解析式。列表解析式一般来说比循环更快,而且更pythonic显得更牛逼。

2.将list转成set以后,使用set的各种方法去处理。

更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python 调用DLL操作抄表机
Jan 12 Python
Python中文字符串截取问题
Jun 15 Python
Django框架下在视图中使用模版的方法
Jul 16 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
python使用opencv进行人脸识别
Apr 07 Python
开源软件包和环境管理系统Anaconda的安装使用
Sep 04 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
详解pyqt5 动画在QThread线程中无法运行问题
May 05 Python
python3实现163邮箱SMTP发送邮件
May 22 Python
python使用Matplotlib画饼图
Sep 25 Python
Python如何执行精确的浮点数运算
Jul 31 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 Python
python爬虫框架scrapy实现模拟登录操作示例
Aug 02 #Python
python爬虫之线程池和进程池功能与用法详解
Aug 02 #Python
Python列表推导式与生成器用法分析
Aug 02 #Python
python flask实现分页的示例代码
Aug 02 #Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 #Python
Python实现正整数分解质因数操作示例
Aug 01 #Python
Python列表生成式与生成器操作示例
Aug 01 #Python
You might like
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
事件委托与阻止冒泡阻止其父元素事件触发
2014/09/02 Javascript
jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
2014/11/19 Javascript
jquery实现动态操作select选中
2015/02/11 Javascript
JavaScript基于ajax编辑信息用法实例
2015/07/15 Javascript
jQuery结合CSS制作动态的下拉菜单
2015/10/27 Javascript
javascript:void(0)是什么意思及href=#与href=javascriptvoid(0)的区别
2015/11/13 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
AngularJS服务service用法总结
2016/12/13 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
ES6新特性之Symbol类型用法分析
2017/03/31 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
2019/07/04 Javascript
[31:01]2014 DOTA2国际邀请赛中国区预选赛5.21 CNB VS Orenda
2014/05/23 DOTA
[01:45]IMBATV TI4前线报道-选手到达
2014/07/07 DOTA
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
python+matplotlib实现动态绘制图片实例代码(交互式绘图)
2018/01/20 Python
python如何通过实例方法名字调用方法
2018/03/21 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
解决每次打开pycharm直接进入项目的问题
2018/10/28 Python
Python线程池模块ThreadPoolExecutor用法分析
2018/12/28 Python
python 提取key 为中文的json 串方法
2018/12/31 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python基础之高级变量类型实例详解
2020/01/03 Python
python add_argument()用法解析
2020/01/29 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
2020/03/20 Python
甜品蛋糕店创业计划书
2014/09/21 职场文书
党员专题组织生活会发言材料
2014/10/17 职场文书
《折线统计图》教学反思
2016/02/22 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题