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压缩和解压缩zip文件的教程
May 06 Python
Python2.x与Python3.x的区别
Jan 14 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
Python3.5局部变量与全局变量作用域实例分析
Apr 30 Python
python 实现return返回多个值
Nov 19 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
python3中sys.argv的实例用法
Apr 24 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
Python rabbitMQ如何实现生产消费者模式
Aug 24 Python
Python 开发工具通过 agent 代理使用的方法
Sep 27 Python
Python文件名匹配与文件复制的实现
Dec 11 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 采集心得技巧
2009/05/15 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
php简单实现MVC
2015/02/05 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
javascript 复杂的嵌套环境中输出单引号和双引号
2009/05/26 Javascript
通过javascript设置css属性的代码
2009/12/28 Javascript
基于Jquery的动态添加控件并取值的实现代码
2010/09/24 Javascript
jQuery之按钮组件的深入解析
2013/06/19 Javascript
JavaScript将相对地址转换为绝对地址示例代码
2013/07/19 Javascript
js调用图片隐藏&显示实现代码
2013/09/13 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
AngularJS  $on、$emit和$broadcast的使用
2016/09/05 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
10个在JavaScript开发中常遇到的BUG
2017/12/18 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
vue中使用微信公众号js-sdk踩坑记录
2019/03/29 Javascript
Node.js设置定时任务之node-schedule模块的使用详解
2020/04/28 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
python通过自定义isnumber函数判断字符串是否为数字的方法
2015/04/23 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
Python算法应用实战之队列详解
2017/02/04 Python
python3第三方爬虫库BeautifulSoup4安装教程
2018/06/19 Python
python 字符串格式化的示例
2020/09/21 Python
matplotlib制作雷达图报错ValueError的实现
2021/01/05 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
无故旷工检讨书
2014/01/26 职场文书
顶撞老师检讨书
2014/02/07 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
小学红领巾广播稿(3篇)
2014/09/13 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
2014年小学工作总结
2014/11/26 职场文书