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的Flask框架中Flask-Admin库的简单入门指引
Apr 07 Python
在Python中使用HTMLParser解析HTML的教程
Apr 29 Python
PyQt5实现下载进度条效果
Apr 19 Python
TensorFlow用expand_dim()来增加维度的方法
Jul 26 Python
Python面向对象之类的内置attr属性示例
Dec 14 Python
Python实现二叉搜索树BST的方法示例
Jul 30 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
python3.7+selenium模拟淘宝登录功能的实现
May 26 Python
keras用auc做metrics以及早停实例
Jul 02 Python
python自动生成证件号的方法示例
Jan 14 Python
python 实现IP子网计算
Feb 18 Python
python可视化之颜色映射详解
Sep 15 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
山进SANGEAN ATS-909X电路分析
2021/03/02 无线电
PHP循环获取GET和POST值的代码
2008/04/09 PHP
php工具型代码之印章抠图
2018/07/18 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
幻宇的层模拟窗口效果-提供演示和下载
2007/01/20 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
数组方法解决JS字符串连接性能问题有争议
2011/01/12 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
js键盘上下左右键怎么触发function(实例讲解)
2013/12/14 Javascript
JavaScript错误处理
2015/02/03 Javascript
JavaScript数据结构和算法之图和图算法
2015/02/11 Javascript
浅谈Angularjs link和compile的使用区别
2016/10/21 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
JS实现类似百叶窗下拉菜单效果
2016/12/30 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
vue实现的树形结构加多选框示例
2019/02/02 Javascript
[01:06:19]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第二场 1月8日
2021/03/11 DOTA
如何运行Python程序的方法
2013/04/21 Python
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
Python修改MP3文件的方法
2015/06/15 Python
Python面向对象之继承代码详解
2018/01/29 Python
Python pysnmp使用方法及代码实例
2020/08/24 Python
python3中celery异步框架简单使用+守护进程方式启动
2021/01/20 Python
美国儿童玩具、装扮和玩偶商店:Magic Cabin
2018/09/02 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
外科实习自我鉴定
2013/10/06 职场文书
通信生自我鉴定
2014/01/18 职场文书
捐款倡议书范文
2014/02/02 职场文书
授权委托书范文
2014/07/31 职场文书
建筑节能汇报材料
2014/08/22 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
2014年医生工作总结
2014/11/21 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
新郎结婚保证书
2015/02/26 职场文书
贫困证明怎么写
2015/06/16 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书