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监控网卡流量并使用graphite绘图的示例
Apr 27 Python
在Python的web框架中配置app的教程
Apr 30 Python
轻松掌握python设计模式之访问者模式
Nov 18 Python
Python中functools模块函数解析
Mar 12 Python
centos6.4下python3.6.1安装教程
Jul 21 Python
Python+Socket实现基于TCP协议的客户与服务端中文自动回复聊天功能示例
Aug 31 Python
python 两个数据库postgresql对比
Oct 21 Python
django ORM之values和annotate使用详解
May 19 Python
浅析Python __name__ 是什么
Jul 07 Python
零基础学Python之前需要学c语言吗
Jul 21 Python
python 利用toapi库自动生成api
Oct 19 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
Mar 20 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
php xml-rpc远程调用
2008/12/19 PHP
php 正则表达式小结
2009/08/31 PHP
PHP针对JSON操作实例分析
2015/01/12 PHP
PHP树形结构tree类用法示例
2019/02/01 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
基于Asp.net与Javascript控制的日期控件
2010/05/22 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
js 定位到某个锚点的方法
2016/11/19 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
解析Vue.js中的组件
2018/02/02 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
实用Javascript调试技巧分享(小结)
2019/06/18 Javascript
js实现时分秒倒计时
2019/12/03 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python教程之全局变量用法
2016/06/27 Python
python: line=f.readlines()消除line中\n的方法
2018/03/19 Python
python 读取摄像头数据并保存的实例
2018/08/03 Python
python创建文件备份的脚本
2018/09/11 Python
浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
2019/03/11 Python
使用Tkinter制作信息提示框
2020/02/18 Python
python如何编写类似nmap的扫描工具
2020/11/06 Python
英国第一的购买便宜玩具和游戏的在线购物网站:Bargain Max
2018/01/24 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
CHARLES & KEITH台湾官网:新加坡时尚品牌
2019/07/30 全球购物
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
材料采购员岗位职责
2013/12/17 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
教师党的群众路线教育实践活动剖析材料
2014/10/09 职场文书
2015年八一建军节慰问信
2015/03/23 职场文书
详细介绍Java中的CyclicBarrier
2022/04/13 Java/Android