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先序遍历二叉树问题
Nov 10 Python
django 发送邮件和缓存的实现代码
Jul 18 Python
用Python将mysql数据导出成json的方法
Aug 21 Python
Ubuntu下Python2与Python3的共存问题
Oct 31 Python
python 实现图片旋转 上下左右 180度旋转的示例
Jan 24 Python
python通过paramiko复制远程文件及文件目录到本地
Apr 30 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
python数据预处理方式 :数据降维
Feb 24 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
May 09 Python
python简单利用字典破解zip文件口令
Sep 07 Python
python解析照片拍摄时间进行图片整理
Jul 23 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
SONY ICF-SW55的电路分析
2021/03/02 无线电
PHP脚本数据库功能详解(上)
2006/10/09 PHP
PHP如何得到当前页和上一页的地址?
2006/11/27 PHP
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP共享内存用法实例分析
2016/02/12 PHP
ThinkPHP框架表单验证操作方法
2017/07/19 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
javascript基础第一章 JavaScript与用户端
2010/07/22 Javascript
firefox下frameset取不到值的解决方法
2010/09/06 Javascript
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
单击按钮显示隐藏子菜单经典案例
2013/01/04 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
url传递的参数值中包含&时,url自动截断问题的解决方法
2016/08/02 Javascript
基于rem的移动端响应式适配方案(详解)
2017/07/07 Javascript
简单实现js放大镜效果
2017/07/24 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
Vue 实现前端权限控制的示例代码
2019/07/09 Javascript
p5.js实现动态图形临摹
2019/10/23 Javascript
在Vue中创建可重用的 Transition的方法
2020/06/02 Javascript
简单介绍Python中的floor()方法
2015/05/15 Python
Python文本相似性计算之编辑距离详解
2016/11/28 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
python实现图片压缩代码实例
2019/08/12 Python
荷兰最大的多品牌男装连锁店:Adam Brandstore
2019/12/31 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
热爱祖国演讲稿
2014/05/04 职场文书
推广普通话共筑中国梦演讲稿
2014/09/21 职场文书
整脏治乱工作简报
2015/07/21 职场文书
运动会广播稿100字
2015/08/19 职场文书
MySQL连接控制插件介绍
2021/09/25 MySQL
利用Python多线程实现图片下载器
2022/03/25 Python
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸