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 25 Python
浅谈python中set使用
Jun 30 Python
浅谈python迭代器
Nov 08 Python
Python简单实现控制电脑的方法
Jan 22 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
Apr 02 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
python字典的setdefault的巧妙用法
Aug 07 Python
Python一行代码解决矩阵旋转的问题
Nov 30 Python
Python tkinter常用操作代码实例
Jan 03 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
Jan 14 Python
Python递归调用实现数字累加的代码
Feb 25 Python
python如何实现DES加密
Sep 21 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适配器模式介绍
2012/08/14 PHP
php socket实现的聊天室代码分享
2014/08/16 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
js实现日期级联效果
2014/01/23 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
js点击文本框弹出可选择的checkbox复选框
2016/02/03 Javascript
JS实现保留n位小数的四舍五入问题示例
2016/08/03 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
原生js实现分页效果
2020/09/23 Javascript
django通过ajax发起请求返回JSON格式数据的方法
2015/06/04 Python
python中私有函数调用方法解密
2016/04/29 Python
python使用正则表达式匹配字符串开头并打印示例
2017/01/11 Python
python RabbitMQ 使用详细介绍(小结)
2018/11/08 Python
python+opencv实现阈值分割
2018/12/26 Python
Python安装及Pycharm安装使用教程图解
2019/09/20 Python
Python requests获取网页常用方法解析
2020/02/20 Python
sklearn+python:线性回归案例
2020/02/24 Python
Python 输出详细的异常信息(traceback)方式
2020/04/08 Python
使用Keras构造简单的CNN网络实例
2020/06/29 Python
简单掌握CSS3将文字描边及填充文字颜色的方法
2016/03/07 HTML / CSS
个人授权委托书范本
2014/04/03 职场文书
个人承诺书格式
2014/06/03 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2015年公路养护工作总结
2015/05/13 职场文书
Win11跳过联网界面创建本地管理账户的3种方法
2022/04/20 数码科技
基于Python实现nc批量转tif格式
2022/08/14 Python