Python 实现数组相减示例


Posted in Python onDecember 27, 2019

问题描述:

有2个数组如下

a = [3,3,3,4,4,4,5,6,7]
b = [3,3,4,4]

第1题:从数组a中删除所有在数组b中出现过的元素。对于上例来说,a删除结束应该等于 [5, 6, 7].

第2题:实现 c = a - b , c应该等于[3, 4, 5, 6, 7].

先看第1题:

常规的思维大致会这么写代码:

for i in a:
 if i in b:
  a.remove(i)

这么写是错误的,如果在for循环外面加一句打印语句,则会发现a变成了一个奇怪的数组: [3, 4, 4, 5, 6, 7]

删倒也删了几个,但是又没有删除干净。(原因后面会讲)

那么,第1题的正确的做法是什么呢?

其实正确的做法很简洁。如下:

a = [i for i in a if i not in b]

再看第2题:

在公布第2题的答案之前,首先我们要弄清楚,为什么本文最初的一段代码是错的?原因就是,当做了a.remove(i)之后,遍历数组的游标会继续右移,然而此时因为已经remove过一个元素了,所以,游标应该保持原位置不动,而不是继续右移。知道了这个原理之后,我们就有办法来写 a - b 了:

import copy

c = copy.deepcopy(a)
while len(b) > 0:
 if b[0] in c:
  c.remove(b[0])
  b.remove(b[0])
 else:
  print("Error: b is not a sub set of a")
  break

print(c) # c = a - b

以上这篇Python 实现数组相减示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之类class定义使用方法
Feb 20 Python
python实现在windows下操作word的方法
Apr 28 Python
Python for Informatics 第11章之正则表达式(二)
Apr 21 Python
Python如何判断数独是否合法
Sep 08 Python
使用Python绘制图表大全总结
Feb 11 Python
Python实现两款计算器功能示例
Dec 19 Python
python中的for循环
Sep 28 Python
详解python项目实战:模拟登陆CSDN
Apr 04 Python
Django中ORM外键和表的关系详解
May 20 Python
获取django框架orm query执行的sql语句实现方法分析
Jun 20 Python
在pyCharm中下载第三方库的方法
Apr 18 Python
pandas求平均数和中位数的方法实例
Aug 04 Python
Pandas 解决dataframe的一列进行向下顺移问题
Dec 27 #Python
Pandas实现DataFrame按行求百分数(比例数)
Dec 27 #Python
pandas的相关系数与协方差实例
Dec 27 #Python
详解opencv中画圆circle函数和椭圆ellipse函数
Dec 27 #Python
如何更改 pandas dataframe 中两列的位置
Dec 27 #Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 #Python
python的slice notation的特殊用法详解
Dec 27 #Python
You might like
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php创建桌面快捷方式实现方法
2015/12/31 PHP
一个简单安全的PHP验证码类 附调用方法
2016/06/24 PHP
关于jQuery $.isNumeric vs. $.isNaN vs. isNaN
2013/04/15 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
js实现简易的单数字随机抽奖(0-9)
2020/03/19 Javascript
RequireJS多页面应用实例分析
2016/06/29 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
2016/10/29 Javascript
jquery实现自定义图片裁剪功能【推荐】
2017/03/08 Javascript
node.js连接MongoDB数据库的2种方法教程
2017/05/17 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
通过nodejs 服务器读取HTML文件渲染到页面的方法
2018/05/17 NodeJs
Vue中 v-if 和v-else-if页面加载出现闪现的问题及解决方法
2018/10/12 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
python3.5仿微软计算器程序
2020/03/30 Python
Python判断列表是否已排序的各种方法及其性能分析
2016/06/20 Python
python 全文检索引擎详解
2017/04/25 Python
python smtplib模块自动收发邮件功能(二)
2018/05/22 Python
selenium+python自动化测试之使用webdriver操作浏览器的方法
2019/01/23 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
浅谈CSS3特性查询(Feature Query: @supports)功能简介
2017/07/31 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
普通大学毕业生自荐信
2013/11/04 职场文书
写好自荐信的技巧
2013/11/08 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
离婚代理词范文
2015/05/23 职场文书
2015年电教工作总结
2015/05/26 职场文书
小学生暑假生活总结
2015/07/13 职场文书
获奖感言怎么写
2015/07/31 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
php 解析非标准json、非规范json
2021/04/01 PHP