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中super的用法实例
May 28 Python
python实现备份目录的方法
Aug 03 Python
python 根据正则表达式提取指定的内容实例详解
Dec 04 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
python 利用文件锁单例执行脚本的方法
Feb 19 Python
python实现列表中最大最小值输出的示例
Jul 09 Python
详解mac python+selenium+Chrome 简单案例
Nov 08 Python
Python使用Turtle库绘制一棵西兰花
Nov 23 Python
python进度条显示-tqmd模块的实现示例
Aug 23 Python
pycharm 配置svn的图文教程(手把手教你)
Jan 15 Python
Python项目实战之使用Django框架实现支付宝付款功能
Feb 23 Python
Python音乐爬虫完美绕过反爬
Aug 30 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
深入了解 register_globals (附register_globals=off 网站打不开的解决方法)
2012/06/27 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
php实现文章评论系统
2019/02/18 PHP
PHP基于swoole多进程操作示例
2019/08/12 PHP
PHP如何使用cURL实现Get和Post请求
2020/07/11 PHP
javascript 类定义的4种方法
2009/09/12 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
JavaScript作用域链示例分享
2014/05/27 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
Node.js 中使用 async 函数的方法
2017/11/20 Javascript
React Native中NavigatorIOS组件的简单使用详解
2018/01/27 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
Vue代码整洁之去重方法整理
2019/08/06 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
[16:14]教你分分钟做大人:米拉娜(HEROS)
2014/11/24 DOTA
Python3.0与2.X版本的区别实例分析
2014/08/25 Python
python持久性管理pickle模块详细介绍
2015/02/18 Python
Python数据分析之如何利用pandas查询数据示例代码
2017/09/01 Python
Django 404、500页面全局配置知识点详解
2020/03/10 Python
python实现图片转字符画
2021/02/19 Python
澳洲的服装老品牌:SABA
2018/02/06 全球购物
办公室文秘自我鉴定
2013/09/21 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
教师学习群众路线心得体会
2014/11/04 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
贫困生助学金感谢信
2015/01/21 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
人事行政部各岗位职责说明书!
2019/07/15 职场文书
我的收音机情缘
2022/04/05 无线电