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 获取新浪微博的最新公共微博实例分享
Jul 03 Python
详解Python中heapq模块的用法
Jun 28 Python
python实现控制台打印的方法
Jan 12 Python
python 猴子补丁(monkey patch)
Jun 26 Python
HTML的form表单和django的form表单
Jul 25 Python
pytorch之inception_v3的实现案例
Jan 06 Python
python单元测试框架pytest的使用示例
Oct 07 Python
Django缓存Cache使用详解
Nov 30 Python
如何使用Python进行PDF图片识别OCR
Jan 22 Python
python面向对象版学生信息管理系统
Jun 24 Python
Python 读取千万级数据自动写入 MySQL 数据库
Jun 28 Python
Python 避免字典和元组的多重嵌套问题
Jul 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
融入意大利的咖啡文化
2021/03/03 咖啡文化
PHP向socket服务器收发数据的方法
2015/01/24 PHP
php单例模式的简单实现方法
2016/06/10 PHP
PHP实现的各类hash算法长度及性能测试实例
2017/08/27 PHP
js 关键词高亮(根据ID/tag高亮关键字)案例介绍
2013/01/21 Javascript
javascript中使用正则计算中文长度的例子
2014/04/29 Javascript
一个JavaScript防止表单重复提交的实例
2014/10/21 Javascript
javascript 动态创建表格
2015/01/08 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
javascript时间排序算法实现活动秒杀倒计时效果
2021/01/28 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
vue-router重定向和路由别名的使用讲解
2019/01/19 Javascript
element-ui table行点击获取行索引(index)并利用索引更换行顺序
2020/02/27 Javascript
微信小程序实现简单的select下拉框
2020/11/23 Javascript
总结Python中逻辑运算符的使用
2015/05/13 Python
python迭代器与生成器详解
2016/03/10 Python
Python优化技巧之利用ctypes提高执行速度
2016/09/11 Python
基于python时间处理方法(详解)
2017/08/14 Python
Scrapy的简单使用教程
2017/10/24 Python
Python分析学校四六级过关情况
2017/11/22 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
2018/12/13 Python
Win10下Python3.7.3安装教程图解
2019/07/08 Python
django如何自己创建一个中间件
2019/07/24 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
机电专业体育教师求职信
2013/09/21 职场文书
党支部书记先进事迹
2014/01/17 职场文书
软件售后服务承诺书
2014/05/21 职场文书
大学同学会活动方案
2014/08/20 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
师德师风剖析材料
2014/09/30 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
Golang的继承模拟实例
2021/06/30 Golang
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js