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中映射类型的内建函数和工厂函数
Aug 19 Python
详解C++编程中一元运算符的重载
Jan 19 Python
Python批量修改文本文件内容的方法
Apr 29 Python
win与linux系统中python requests 安装
Dec 04 Python
Python操作Excel之xlsx文件
Mar 24 Python
Tesserocr库的正确安装方式
Oct 19 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
anaconda中更改python版本的方法步骤
Jul 14 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
Python中实现输入超时及如何通过变量获取变量名
Jan 18 Python
Python使用scapy模块发包收包
May 07 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/10/09 PHP
PHP取余函数介绍MOD(x,y)与x%y
2014/05/15 PHP
thinkphp文件处理类Dir.class.php的用法分析
2014/12/08 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
经典海量jQuery插件 大家可以收藏一下
2010/02/07 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
固定表格行列(expression)在IE下适用
2013/07/25 Javascript
jquery验证手机号码、邮箱格式是否正确示例代码
2013/07/28 Javascript
JavaScript中获取样式的原生方法小结
2014/10/08 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
三个js循环的关键字示例(for与while)
2016/02/16 Javascript
JavaScript html5 canvas绘制时钟效果
2016/03/01 Javascript
jQuery 如何给Carousel插件添加新的功能
2016/04/18 Javascript
AngularJS压缩JS技巧分析
2016/11/08 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
微信小程序中顶部导航栏的实现代码
2017/03/30 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
2017/10/25 Javascript
ES6 javascript中class类的get与set用法实例分析
2017/10/30 Javascript
vue中实现先请求数据再渲染dom分享
2018/03/17 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
Django框架models使用group by详解
2020/03/11 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
乔丹名人堂演讲稿
2014/05/24 职场文书
护士工作失误检讨书
2014/09/14 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
租车协议书范本2014
2014/11/17 职场文书
工作后的感想
2015/08/07 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
Python列表删除重复元素与图像相似度判断及删除实例代码
2021/05/07 Python
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang