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在hadoop上跑起来
Jan 27 Python
Python中类的初始化特殊方法
Dec 01 Python
windows下python安装小白入门教程
Sep 18 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
Python HTTP下载文件并显示下载进度条功能的实现
Apr 02 Python
TensorFlow tf.nn.conv2d_transpose是怎样实现反卷积的
Apr 20 Python
Python sublime安装及配置过程详解
Jun 29 Python
python利用tkinter实现图片格式转换的示例
Sep 28 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
python实现socket简单通信的示例代码
Apr 13 Python
Python机器学习之PCA降维算法详解
May 19 Python
python如何为list实现find方法
May 30 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代码网站如何防范SQL注入漏洞攻击建议分享
2012/03/01 PHP
wamp下修改mysql访问密码的解决方法
2013/05/07 PHP
PHP调用Linux命令权限不足问题解决方法
2015/02/07 PHP
PHP使用NuSOAP调用Web服务的方法
2015/07/18 PHP
PHP实现简单爬虫的方法
2015/07/29 PHP
CodeIgniter框架验证码类库文件与用法示例
2017/03/18 PHP
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
关于全局变量和局部变量的那些事
2013/01/11 Javascript
自制的文件上传JS控件可支持IE、chrome、firefox etc
2014/04/18 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
简单实现js浮动框
2016/12/13 Javascript
详解nodejs 文本操作模块-fs模块(四)
2016/12/22 NodeJs
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
Vue CLI 2.x搭建vue(目录最全分析)
2019/02/27 Javascript
JavaScript async/await原理及实例解析
2020/12/02 Javascript
Nest.js环境变量配置与序列化详解
2021/02/21 Javascript
python 中文字符串的处理实现代码
2009/10/25 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Numpy数组的保存与读取方法
2018/04/04 Python
在win10和linux上分别安装Python虚拟环境的方法步骤
2019/05/09 Python
python让函数不返回结果的方法
2020/06/22 Python
Python连接mysql方法及常用参数
2020/09/01 Python
解决pycharm 格式报错tabs和space不一致问题
2021/02/26 Python
HTML5实现分享到微信好友朋友圈QQ好友QQ空间微博二维码功能
2018/01/03 HTML / CSS
俄罗斯品牌服装和鞋子的在线商店:KUPIVIP
2019/10/27 全球购物
腾讯公司的一个sql题
2013/01/22 面试题
卫生标语大全
2014/06/21 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
2014年档案管理员工作总结
2014/12/01 职场文书
Win11安装升级时提示“该电脑必须支持安全启动”
2022/04/19 数码科技
使用CSS实现六边形的图片效果
2022/08/05 HTML / CSS