Python实现两个list求交集,并集,差集的方法示例

 更新时间:2018年08月02日 10:54:36   作者:bitcarmanlee  
这篇文章主要介绍了Python实现两个list求交集,并集,差集的方法,结合实例形式分析了Python使用intersection、union及difference方法实现两个集合list的交集、并集与差集操作技巧,需要的朋友可以参考下

本文实例讲述了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程序设计有所帮助。

相关文章

  • PYQT5实现控制台显示功能的方法

    PYQT5实现控制台显示功能的方法

    今天小编大家分享一篇PYQT5实现控制台显示功能的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • 深入分析在Python模块顶层运行的代码引起的一个Bug

    深入分析在Python模块顶层运行的代码引起的一个Bug

    几个星期前, 我的同事跑过来, 说发现一个奇怪的Bug: 在使用Python的subprocess运行子进程时, 当子进程运行失败时居然没有抛出错误!
    2014-07-07
  • Python文档生成工具pydoc使用介绍

    Python文档生成工具pydoc使用介绍

    这篇文章主要介绍了Python文档生成工具pydoc使用介绍,本文讲解了基本用法、获取帮助的方法、生成的文档效果图等内容,需要的朋友可以参考下
    2015-06-06
  • Python 发送SMTP邮件的简单教程

    Python 发送SMTP邮件的简单教程

    SMTP(Simple Mail Transfer Protocol)简单邮件传输协议,Python内置对SMTP的支持,可以发送纯文本文件,HTML邮件以及附带文件。本文讲解如何使用python发送邮件
    2021-06-06
  • python中selenium库的基本使用详解

    python中selenium库的基本使用详解

    这篇文章主要介绍了python中selenium库的基本使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Python OS模块常用函数说明

    Python OS模块常用函数说明

    这篇文章主要介绍了Python OS模块常用函数说明,本文列出了一些在os模块中比较有用的部分函数,它们中的大多数都简单明了,需要的朋友可以参考下
    2015-05-05
  • Python基于QRCode实现生成二维码的方法【下载,安装,调用等】

    Python基于QRCode实现生成二维码的方法【下载,安装,调用等】

    这篇文章主要介绍了Python基于QRCode实现生成二维码的方法,结合实例形式较为详细的分析了Python下载,安装与调用QRCode实现生成二维码功能的具体步骤与相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • python如何寻找主串中所有指定子串下标

    python如何寻找主串中所有指定子串下标

    这篇文章主要介绍了python如何寻找主串中所有指定子串下标,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Python+Pygame实现之见缝插针游戏的实现

    Python+Pygame实现之见缝插针游戏的实现

    这篇文章主要为大家介绍了如何利用Python中的Pygame模块实现见缝插针游戏,文中的示例代码讲解详细,对我们学习Python游戏开发有一定帮助,需要的可以参考一下
    2022-07-07
  • Python读取csv文件做K-means分析详情

    Python读取csv文件做K-means分析详情

    这篇文章主要介绍了Python读取csv文件做K-means分析详情,基于时间序列的分析2D读取时间列和高程做一下分析。下文更多详细介绍需要的小伙伴可以参考一下
    2022-03-03

最新评论