在python中,如果有两个数组,分别要求交集,并集与差集,怎么实现比较方便呢?

当然最容易想到的是对两个数组做循环,即写两个for循环来实现。这种写法大部分同学应该都会,而且也没有太多的技术含量,下面介绍一些常用的方法。

# -*- encoding:utf-8 -*-

def diff(listA, listB):

# 交集方法1

retA = [i for i in listA if i in listB]

# 交集方法2

retB = list(set(listA).intersection(set(listB)))

print '---------交集--------'

print 'retA:%s' % retA

print 'retB%s' % retB

# 并集

retC = list(set(listA).union(set(listB)))

print '---------并集--------'

print 'retC:%s' % retC

# 差集 方法1 在B中不在A中

retD = list(set(listB).difference(set(listA)))

print '---------差集方法1--------'

print 'retD:%s' % retD

# 差集 方法2 在B中不在A中

retE = [i for i in listB if i not in listA]

print '---------差集方法2-----'

print 'retE:%s' % retE

if __name__ == '__main__':

listA = [1, 2, 3, 4, 5]

listB = [3, 4, 5, 6, 7]

diff(listA, listB)

结果如下图:

image.png

结合代码来看,大体上是两种思路:

1.使用列表解析式。列表解析式一般来说比循环更快。

2.将list转成set以后,使用set的各种方法去处理。

python交并补_python两个列表求交、并、差相关推荐

  1. python交并补_Python 集合的交差并补操作及方法

    1.集合的交差并补 intersection() 交集 set1 ={'卢俊义','花荣', '吴用'} set2 ={'公孙胜','秦明','卢俊义'} res = set1.intersectio ...

  2. python中怎么比较两个列表-python中如何比较两个列表不同

    通过不断的测试发现,python实现高效快速比对两个列表的不同,可借助python集合set()提供的集合运算进行操作,此方式效率非常高. 而在java语言中,如下方法中方法1相比方法2(集合运算)的 ...

  3. python中怎么比较两个列表-python中如何比较两个列表

    cmp() 方法用于比较两个列表的元素. cmp()方法语法:cmp(list1, list2) 参数: list1 -- 比较的列表.list2 -- 比较的列表. 返回值: 如果比较的元素是同类型 ...

  4. python中如何将两个列表进行合并_Python中如何把两个list合并,并按从小到大顺序排列?...

    本题分为两个部分:一个是list的合并,一个是用while loop循环将合并后的数组从小到大进行排序--排序问题. 1. List的合并: list的合并其实非常简单,只需要用"+&quo ...

  5. python中怎么比较两个列表的大小_Python:找到两个列表中存在的给定长度的公共子列表...

    我必须找到一个有效的python代码来执行以下操作: 查找n包含在两个给定列表中的至少一个(如果存在的话)连续元素序列. 例如,使用n=3,这两个列表的结果将是['Tom', 'Sam', 'Jill ...

  6. python中如何比较两个列表_python中如何比较两个列表

    cmp() 方法用于比较两个列表的元素. cmp()方法语法:cmp(list1, list2) 参数: list1 -- 比较的列表.list2 -- 比较的列表. 返回值: 如果比较的元素是同类型 ...

  7. python求交点坐标_Python - 两圆相交求交点坐标

    Python - 两圆相交求交点坐标 Max.Bai 2016-05-16 Python - 两圆相交求交点坐标 三轴机械臂求坐标问题,其实转化为平面问题就是两圆相交求交点问题,交点算出来就可以用反三 ...

  8. python中如何将两个列表进行合并_python怎样将两个list合并

    python中两个列表合并:a=[1, 2, 3, 4, 5, 6] b=['a', 'b', 'c', 'd'] 方法1: a+b 如下:>>> a=[1,2,3,4,5,6] & ...

  9. python交并补符号_三种方式实现 Python 中的集合的交、并、补运算-阿里云开发者社区...

    三种方式实现 Python 中的集合的交.并.补运算 一 背景 集合这个概念在我们高中阶段就有所了解,毕业已多年,我们一起回顾一下几个集合相关的基本概念吧? 集合是指具有某种特定性质的具体的或抽象的对 ...

最新文章

  1. excel中使用CORREL函数计算两个时间序列数据列之间的滚动相关性(Rolling correlations)、例如,计算两种商品销售额之间的3个月的滚动相关性
  2. Centos7常用操作
  3. webpack流程图
  4. Ping Function
  5. 执行jar包,输出信息到文件
  6. 期权协议Charm在主网上线为UniswapV3设计的被动做市策略AlphaVaults
  7. java读取合并单元格_Java POI常用方法,读取单元格的值,设置单元格格式,合并单元格,获取已合并的单元格,导出至本地等...
  8. 【find】Linux中find常见用法示例
  9. 使用python的sklearn包实现CCA(典型相关分析)
  10. 用pdftocairo将PDF图片转成svg矢量图
  11. 问题解决:error CS0234: 命名空间“System”中不存在类型或命名空间名“CodeDom”/“ComponentModel”(是否缺少程序集引用?)
  12. Running pipenv gives TypeError: 'module' object is not callable
  13. 阿里员工调侃:花名考拉的妹子离职去了网易考拉,现在又回来了
  14. 百度地图-创建标注 画线
  15. 全国计算机等级考试ms office,全国计算机等级考试一级ms office
  16. 华为软开云7--部署
  17. win10 截屏自带快捷键(矩形,任意图形)
  18. Microsoft Outlook 2019 for mac(电子邮件和日历工具) v16.45Beta中文激活版
  19. 四川麻将必胜攻略笔记(入门篇1)
  20. 【疫情分析--数据采集】

热门文章

  1. java喷泉编码_好程序员Java教程分享使用JS实现简单喷泉效果
  2. 进程间通信-Queue 消息队列 先进先出
  3. Python数据预处理数据的方法总结(使用sklearn-preprocessing)
  4. matlab 动画_MATLAB绘图动画(1)
  5. 论文浅尝 - SIAM ICDM 2020 | 基于图时空网络的知识引导的诊断预测
  6. 领域应用 | 到底什么时候使用图数据库?
  7. 大数据学习——虚拟机准备(改主机名)
  8. Python 模块(二)
  9. 移植memtester到android平台
  10. WP7开发小技巧之快捷键