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中精确输出JSON浮点数的方法
Apr 18 Python
详解Python的Django框架中Manager方法的使用
Jul 21 Python
python使用super()出现错误解决办法
Aug 14 Python
Python实现翻转数组功能示例
Jan 12 Python
Python3 中把txt数据文件读入到矩阵中的方法
Apr 27 Python
一条命令解决mac版本python IDLE不能输入中文问题
May 15 Python
pycharm+PyQt5+python最新开发环境配置(踩坑)
Feb 11 Python
Django中信号signals的简单使用方法
Jul 04 Python
Django框架静态文件处理、中间件、上传文件操作实例详解
Feb 29 Python
如何在python中执行另一个py文件
Apr 30 Python
关于python scrapy中添加cookie踩坑记录
Nov 17 Python
Python项目打包成二进制的方法
Dec 30 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
destoon各类调用汇总
2014/06/20 PHP
PHP获取ip对应地区和使用网络类型的方法
2015/03/11 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
PHP大文件切割上传功能实例分析
2019/07/01 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
CSS心形加载的动画源码的实现
2021/03/09 HTML / CSS
js技巧--转义符"\"的妙用
2007/01/09 Javascript
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
jQuery 页面 Mask实现代码
2010/01/09 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
js原型链原理看图说明
2012/07/07 Javascript
js正文内容高亮效果的实现方法
2013/06/30 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
js中hash和ico的关联分析
2015/02/05 Javascript
纯javascript响应式树形菜单效果
2015/11/10 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
AngularJS自定义表单验证功能实例详解
2018/08/24 Javascript
three.js实现圆柱体
2018/12/30 Javascript
一起写一个即插即用的Vue Loading插件实现
2019/10/31 Javascript
python3.x 将byte转成字符串的方法
2018/07/17 Python
python 接口实现 供第三方调用的例子
2019/08/13 Python
解决django model修改添加字段报错的问题
2019/11/18 Python
使用Pycharm分段执行代码
2020/04/15 Python
python爬虫把url链接编码成gbk2312格式过程解析
2020/06/08 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
JoJo Maman Bébé爱尔兰官网:英国最受欢迎的精品母婴品牌
2020/12/20 全球购物
JPA面试常见问题
2016/11/14 面试题
舞蹈比赛获奖感言
2014/02/04 职场文书
小学运动会报道稿
2014/10/04 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android