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语言技巧之三元运算符使用介绍
Mar 04 Python
django+js+ajax实现刷新页面的方法
May 22 Python
Python中单、双下划线的区别总结
Dec 01 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
python 以16进制打印输出的方法
Jul 09 Python
详解python读取image
Apr 03 Python
python3.6环境安装+pip环境配置教程图文详解
Jun 20 Python
Django 创建新App及其常用命令的实现方法
Aug 04 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
Python动态导入模块和反射机制详解
Feb 18 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
Mar 10 Python
python基本算法之实现归并排序(Merge sort)
Sep 01 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支持断点续传的源码
2010/05/16 PHP
PHP可变函数学习小结
2015/11/29 PHP
CI框架(ajax分页,全选,反选,不选,批量删除)完整代码详解
2016/11/01 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
java解析json方法总结
2019/05/16 PHP
jQuery select控制插件
2009/08/17 Javascript
asp.net 30分钟掌握无刷新 Repeater
2011/09/16 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
基于jquery扩展漂亮的CheckBox(自己编写)
2013/11/19 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
javascript模拟命名空间
2015/04/17 Javascript
浅谈JS之tagNaem和nodeName
2016/09/13 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
2016/09/14 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
原生JS实现贪吃蛇小游戏
2020/03/09 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
基于python实现在excel中读取与生成随机数写入excel中
2018/01/04 Python
python爬取拉勾网职位数据的方法
2018/01/24 Python
selenium学习教程之定位以及切换frame(iframe)
2021/01/04 Python
台湾深度自由行旅游平台:Tripbaa趣吧
2017/10/10 全球购物
世界排名第一的运动鞋市场:Flight Club
2020/01/03 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
给分销商的致歉信
2014/01/14 职场文书
个人课题方案
2014/05/08 职场文书
环保倡议书范文
2014/05/12 职场文书
公益广告标语
2014/06/19 职场文书
2015年财政局工作总结
2015/05/21 职场文书
党小组考察意见
2015/06/02 职场文书
监护人证明
2015/06/19 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书