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实现学生成绩管理系统
Apr 05 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 Python
python+splinter自动刷新抢票功能
Sep 25 Python
Python实现八皇后问题示例代码
Dec 09 Python
快速解决docker-py api版本不兼容的问题
Aug 30 Python
python实现同一局域网下传输图片
Mar 20 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
Aug 03 Python
如何在scrapy中捕获并处理各种异常
Sep 28 Python
Python基于内置函数type创建新类型
Oct 22 Python
python实现文件分片上传的接口自动化
Nov 19 Python
python对输出的奇数偶数排序实例代码
Dec 04 Python
详解python的xlwings库读写excel操作总结
Feb 26 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
全国FM电台频率大全 - 12 安徽省
2020/03/11 无线电
PHP 引用文件技巧
2010/03/02 PHP
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
关于IE浏览器以及Firefox下的javascript冒泡事件的响应层级
2010/10/14 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
javascript继承机制实例详解
2014/11/20 Javascript
JS中跳出循环的示例代码
2017/09/14 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
2019/05/21 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
python共享引用(多个变量引用)示例代码
2013/12/04 Python
Python中eval带来的潜在风险代码分析
2017/12/11 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python 输出所有大小写字母的方法
2019/01/02 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
Python根据服务获取端口号的方法
2019/09/25 Python
英国复古皮包品牌:Beara Beara
2018/07/18 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
UDP协议功能
2013/01/06 面试题
Linux内核的同步机制是什么?主要有哪几种内核锁
2013/01/03 面试题
工作的心得体会
2013/12/31 职场文书
大学校运会广播稿
2014/02/03 职场文书
《四季》教学反思
2014/04/08 职场文书
产品陈列协议书(标准版)
2014/09/17 职场文书
党性分析材料格式
2014/12/19 职场文书
机动车交通事故协议书
2015/01/29 职场文书
教师学期末个人总结
2015/02/13 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
污水处理保证书
2015/05/09 职场文书
CSS filter 有什么神奇用途
2021/05/25 HTML / CSS