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格式化字符串实例总结
Sep 28 Python
python遍历数组的方法小结
Apr 30 Python
python数组过滤实现方法
Jul 27 Python
网站渗透常用Python小脚本查询同ip网站
May 08 Python
基于windows下pip安装python模块时报错总结
Jun 12 Python
Python 一键制作微信好友图片墙的方法
May 16 Python
Django单元测试中Fixtures用法详解
Feb 25 Python
Django 解决上传文件时,request.FILES为空的问题
May 20 Python
Python celery原理及运行流程解析
Jun 13 Python
Python3爬虫中Selenium的用法详解
Jul 10 Python
Matplotlib 绘制饼图解决文字重叠的方法
Jul 24 Python
python 判断一组数据是否符合正态分布
Sep 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
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
js中继承的几种用法总结(apply,call,prototype)
2013/12/26 Javascript
js返回上一页并刷新的多种实现方法
2014/02/26 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
老生常谈原生JS执行环境与作用域
2016/11/22 Javascript
你真的了解BOM中的history对象吗
2017/02/13 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
利用Angular.js编写公共提示模块的方法教程
2017/05/28 Javascript
Element Cascader 级联选择器的使用示例
2020/07/27 Javascript
如何区分vue中的v-show 与 v-if
2020/09/08 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
Python pandas常用函数详解
2018/02/07 Python
python批量赋值操作实例
2018/10/22 Python
Python离线安装PIL 模块的方法
2019/01/08 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
利用Python校准本地时间的方法教程
2019/10/31 Python
Python如何在windows环境安装pip及rarfile
2020/06/15 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
意大利制造的西装、衬衫和针对男士量身定制的服装:Lanieri
2018/04/08 全球购物
英国床和浴室商场:Bed & Bath Emporium
2018/05/20 全球购物
介绍一下XMLHttpRequest对象的常用方法和属性
2013/05/24 面试题
信息总监管理职责范本
2014/03/08 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
实习公司领导推荐函
2014/05/21 职场文书
夫妻房产协议书的格式
2014/10/11 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
党员个人整改措施
2014/10/24 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
SQL Server中搜索特定的对象
2022/05/25 SQL Server