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 相关文章推荐
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
python socket多线程通讯实例分析(聊天室)
Apr 06 Python
python利用Guetzli批量压缩图片
Mar 23 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python return逻辑判断表达式实现解析
Dec 02 Python
python Canny边缘检测算法的实现
Apr 24 Python
Keras自动下载的数据集/模型存放位置介绍
Jun 19 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
python 基于opencv操作摄像头
Dec 24 Python
python playwright 自动等待和断言详解
Nov 27 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
一个查看session内容的函数
2006/10/09 PHP
NOD32 v2.70.32 简体中文封装版 提供下载了
2007/02/27 PHP
PHP无敌近乎加密方式!
2010/07/17 PHP
使用php判断浏览器的类型和语言的函数代码
2013/02/28 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
2013/06/20 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
win7系统配置php+Apache+mysql环境的方法
2015/08/21 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
Javascript中的相等与不等运算
2010/04/25 Javascript
JS子父窗口互相操作取值赋值的方法介绍
2013/05/11 Javascript
js获取IP和PcName(IE)在vs中可用
2013/08/02 Javascript
jQuery获取父元素及父节点的方法小结
2016/04/14 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
javascript如何实现create方法
2019/11/04 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
python将txt文件读入为np.array的方法
2018/10/30 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
opencv python图像梯度实例详解
2020/02/04 Python
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
生物有机护肤品:Aurelia Probiotic Skincare
2018/01/31 全球购物
绘儿乐产品官方在线商店:Crayola.com
2019/09/07 全球购物
不拖欠农民工工资承诺书
2014/03/31 职场文书
学校安全生产承诺书
2014/05/23 职场文书
拓展训练激励口号
2014/06/17 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
就业推荐表导师评语
2014/12/31 职场文书
学生保证书格式
2015/02/27 职场文书
校长新学期寄语2016
2015/12/04 职场文书
作文之亲情600字
2019/09/23 职场文书
Python使用Kubernetes API访问集群
2021/05/30 Python
Java中使用Filter过滤器的方法
2021/06/28 Java/Android