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类里的__init__方法函数,Python类的构造函数
Dec 10 Python
Python排序搜索基本算法之希尔排序实例分析
Dec 09 Python
用Python进行简单图像识别(验证码)
Jan 19 Python
对pycharm代码整体左移和右移缩进快捷键的介绍
Jul 16 Python
利用pandas读取中文数据集的方法
Jul 25 Python
TensorFlow Session使用的两种方法小结
Jul 30 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
pycharm设置默认的UTF-8编码模式的方法详解
Jun 01 Python
解决tensorflow/keras时出现数组维度不匹配问题
Jun 29 Python
使用已经得到的keras模型识别自己手写的数字方式
Jun 29 Python
Python标准库pathlib操作目录和文件
Nov 20 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代码审计比较有意思的例子
2014/05/07 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
因str_replace导致的注入问题总结
2019/08/08 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
JavaScript 函数式编程的原理
2009/10/16 Javascript
JavaScript 组件之旅(一)分析和设计
2009/10/28 Javascript
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
jquery 选项卡效果 新手代码
2011/07/08 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
2013/03/05 Javascript
jquery实现列表上下移动功能
2016/02/25 Javascript
vue初尝试--项目结构(推荐)
2018/01/30 Javascript
详解React开发必不可少的eslint配置
2018/02/05 Javascript
vue.js通过路由实现经典的三栏布局实例代码
2018/07/08 Javascript
js的各种数据类型判断的介绍
2019/01/19 Javascript
详解小程序input框失焦事件在提交事件前的处理
2019/05/05 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
Python实现身份证号码解析
2015/09/01 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Mac安装python3的方法步骤
2019/08/09 Python
详解python 内存优化
2020/08/17 Python
python 绘制正态曲线的示例
2020/09/24 Python
如何Tkinter模块编写Python图形界面
2020/10/14 Python
使用css3绘制出各种几何图形
2016/08/17 HTML / CSS
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
会计实习自我鉴定
2013/12/04 职场文书
大学生职业生涯规划书前言
2014/01/09 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
pytorch 两个GPU同时训练的解决方案
2021/06/01 Python
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS
SpringBoot详解整合Redis缓存方法
2022/07/15 Java/Android