Python3实现计算两个数组的交集算法示例


Posted in Python onApril 03, 2019

本文实例讲述了Python3实现计算两个数组的交集算法。分享给大家供大家参考,具体如下:

问题:

给定两个数组,写一个方法来计算它们的交集。

方案一:利用collections.Counter&运算,一步到位,找到 最小次数 的相同元素。

# -*- coding:utf-8 -*-
#! python3
def intersect(nums1, nums2):
  """
  :type nums1: List[int]
  :type nums2: List[int]
  :rtype: List[int]
  """
  import collections
  a, b = map(collections.Counter, (nums1, nums2))
  return list((a & b).elements())
#测试
arr1 = [1,2,3,4,5]
arr2 = [3,4,5,6,7]
print(intersect(arr1,arr2))

运行结果:

[3, 4, 5]

方案二:遍历其中一个数组,发现相同元素时添加到新列表中,同时删去另一个数组中的一个相同元素

# -*- coding:utf-8 -*-
#! python3
def intersect(nums1, nums2):
  """
  :type nums1: List[int]
  :type nums2: List[int]
  :rtype: List[int]
  """
  res = []
  for k in nums1:
    if k in nums2:
      res.append(k)
      nums2.remove(k)
  return res
#测试
arr1 = [1,2,3,4,5]
arr2 = [3,4,5,6,7]
print(intersect(arr1,arr2))

运行结果:

[3, 4, 5]

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
在Python中使用全局日志时需要注意的问题
May 06 Python
对python遍历文件夹中的所有jpg文件的实例详解
Dec 08 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
Feb 26 Python
Python列表倒序输出及其效率详解
Mar 04 Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 Python
Python如何在循环内使用list.remove()
Jun 01 Python
Python lxml库的简单介绍及基本使用讲解
Dec 22 Python
python des,aes,rsa加解密的实现
Jan 16 Python
让文件路径提取变得更简单的Python Path库
May 27 Python
pandas提升计算效率的一些方法汇总
May 30 Python
Python识别花卉种类鉴定网络热门植物并自动整理分类
Apr 08 Python
Python3获取拉勾网招聘信息的方法实例
Apr 03 #Python
Python3实现的旋转矩阵图像算法示例
Apr 03 #Python
python3对拉勾数据进行可视化分析的方法详解
Apr 03 #Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 #Python
Python时间序列处理之ARIMA模型的使用讲解
Apr 02 #Python
Python代码实现删除一个list里面重复元素的方法
Apr 02 #Python
从0开始的Python学习014面向对象编程(推荐)
Apr 02 #Python
You might like
php类
2006/11/27 PHP
php为什么选mysql作为数据库? Mysql 创建用户方法
2007/07/02 PHP
Apache环境下PHP利用HTTP缓存协议原理解析及应用分析
2010/02/16 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
php正则表达式学习笔记
2015/11/13 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
什么是OneThink oneThink后台添加插件步骤
2016/04/13 PHP
Thinkphp事务操作实例(推荐)
2017/04/01 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
actionscript与javascript的区别
2011/05/25 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
JS实现图片放大镜插件详解
2017/11/06 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
JavaScript函数apply()和call()用法与异同分析
2018/08/10 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
浅谈js中的attributes和Attribute的用法与区别
2020/07/16 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python中scatter函数参数及用法详解
2017/11/08 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
PYQT5开启多个线程和窗口,多线程与多窗口的交互实例
2019/12/13 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
PyQt5实现画布小程序
2020/05/30 Python
神路信息Java面试题目
2013/03/31 面试题
员工自我鉴定
2013/10/09 职场文书
退休感言
2014/01/28 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
党员实事承诺书
2014/03/26 职场文书
数学系毕业生求职信
2014/05/29 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
幼儿园小班班务总结
2015/08/03 职场文书
win10电脑双屏显示一个黑屏怎么办?win10电脑双屏显示一个黑屏解决方法
2022/07/15 数码科技