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提示[Errno 32]Broken pipe导致线程crash错误解决方法
Nov 19 Python
Python解惑之True和False详解
Apr 24 Python
python绘制直线的方法
Jun 30 Python
python3.6下Numpy库下载与安装图文教程
Apr 02 Python
Python编程学习之如何判断3个数的大小
Aug 07 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
解决Django layui {{}}冲突的问题
Aug 29 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
Python的控制结构之For、While、If循环问题
Jun 30 Python
Python 如何测试文件是否存在
Jul 31 Python
pytorch显存一直变大的解决方案
Apr 08 Python
pytorch实现ResNet结构的实例代码
May 17 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
php中去除所有js,html,css代码
2010/10/12 PHP
php 伪静态之IIS篇
2014/06/02 PHP
PHP多进程编程实例
2014/10/15 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
2020/04/02 PHP
Web跨浏览器进程通信(Web跨域)
2013/04/17 Javascript
jQuery动态地获取系统时间实现代码
2013/05/24 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
JS替换文本域内的回车示例
2014/02/18 Javascript
JavaScript中的对象的extensible属性介绍
2014/12/30 Javascript
js表格排序实例分析(支持int,float,date,string四种数据类型)
2015/05/06 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
基于Bootstrap模态对话框只加载一次 remote 数据的解决方法
2017/07/09 Javascript
微信小程序之swiper轮播图中的图片自适应高度的方法
2018/04/23 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
element ui table(表格)实现点击一行展开功能
2018/12/04 Javascript
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
vue-cli3 引入 font-awesome的操作
2020/08/11 Javascript
python利用正则表达式搜索单词示例代码
2017/09/24 Python
python实现批量图片格式转换
2020/06/16 Python
Python实现将数据写入netCDF4中的方法示例
2018/08/30 Python
对python中基于tcp协议的通信(数据传输)实例讲解
2019/07/22 Python
python deque模块简单使用代码实例
2020/03/12 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
Linux中如何设置Java环境变量(Ubuntu)
2016/07/24 面试题
社区优秀志愿者材料
2014/02/02 职场文书
销售总经理岗位职责
2014/03/15 职场文书
医院保洁服务方案
2014/06/11 职场文书
教师师德师风自我剖析材料
2014/09/29 职场文书
2015个人简历自我评价语
2015/03/11 职场文书
python随机打印成绩排名表
2021/06/23 Python
PyMongo 查询数据的实现
2021/06/28 Python
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python