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中字典的键的使用
Aug 19 Python
利用Python学习RabbitMQ消息队列
Nov 30 Python
Python字符串切片操作知识详解
Mar 28 Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 Python
Python实现获取照片拍摄日期并重命名的方法
Sep 30 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
Nov 06 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
python2爬取百度贴吧指定关键字和图片代码实例
Aug 14 Python
Python numpy数组转置与轴变换
Nov 15 Python
pytorch GAN伪造手写体mnist数据集方式
Jan 10 Python
python中Tkinter 窗口之输入框和文本框的实现
Apr 12 Python
python区块链实现简版工作量证明
May 25 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执行速度全攻略(下)
2006/10/09 PHP
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
一些被忽视的PHP函数(简单整理)
2010/04/30 PHP
php发送邮件的问题详解
2015/06/22 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
PHP小程序支付功能完整版【基于thinkPHP】
2019/03/26 PHP
根据分辨率不同,调用不同的css文件
2006/08/25 Javascript
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
JQuery 绑定事件时传递参数的实现方法
2009/10/13 Javascript
使用JS获取当前地理位置方法汇总
2014/12/18 Javascript
JS简单设置下拉选择框默认值的方法
2016/08/20 Javascript
利用React-router+Webpack快速构建react程序
2016/10/27 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
深入了解响应式React Native Echarts组件
2019/05/29 Javascript
vue监听用户输入和点击功能
2019/09/27 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
2019/10/24 Javascript
[51:11]2014 DOTA2国际邀请赛中国区预选赛5.21 LGD-CDEC VS DT
2014/05/22 DOTA
在Linux系统上安装Python的Scrapy框架的教程
2015/06/11 Python
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
python中实现k-means聚类算法详解
2017/11/11 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
pandas ix &iloc &loc的区别
2019/01/10 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
python3转换code128条形码的方法
2019/04/17 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
找到您丢失的钥匙、钱包和手机:Tile
2017/05/19 全球购物
学生周末回家住宿长期请假条
2014/02/15 职场文书
布达拉宫的导游词
2015/02/02 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python