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库urllib与urllib2主要区别分析
Jul 13 Python
浅谈python中的实例方法、类方法和静态方法
Feb 17 Python
python3利用tcp实现文件夹远程传输
Jul 28 Python
windows下python 3.6.4安装配置图文教程
Aug 21 Python
Python 实现两个列表里元素对应相乘的方法
Nov 14 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
基于python历史天气采集的分析
Feb 14 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
NumPy排序的实现
Jan 21 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
python2和python3哪个使用率高
Jun 23 Python
Python如何将将模块分割成多个文件
Aug 04 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中FTP函数ftp_connect、ftp_login与ftp_chmod用法
2014/11/18 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
javascript document.images实例
2008/05/27 Javascript
jQuery 选择表格(table)里的行和列及改变简单样式
2012/12/15 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
小巧强大的jquery layer弹窗弹层插件
2015/12/06 Javascript
jQuery中trigger()与bind()用法分析
2015/12/18 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
2016/11/22 Javascript
Javascript 链式作用域详细介绍
2017/02/23 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
原生js生成图片验证码
2020/10/11 Javascript
浅析VUE防抖与节流
2020/11/24 Vue.js
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
浅谈Python中带_的变量或函数命名
2017/12/04 Python
使用Python爬取最好大学网大学排名
2018/02/24 Python
python批量替换多文件字符串问题详解
2018/04/22 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
2020/02/21 Python
结合 CSS3 transition transform 实现简单的跑马灯效果的示例
2018/02/07 HTML / CSS
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
数控专业个人求职信范文
2014/02/05 职场文书
2015欢度元旦标语口号
2014/12/09 职场文书
新教师个人总结
2015/02/06 职场文书
旅行社计调工作总结
2015/08/12 职场文书
未来,这5大方向都很适合创业
2019/07/22 职场文书
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
无线电通信名词解释
2022/02/18 无线电