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实现批量重命名文件的代码
May 25 Python
纯Python开发的nosql数据库CodernityDB介绍和使用实例
Oct 23 Python
Python探索之ModelForm代码详解
Oct 26 Python
Python输出各行命令详解
Feb 01 Python
tensorflow实现逻辑回归模型
Sep 08 Python
Python中的类与类型示例详解
Jul 10 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
Dec 04 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 Python
python时间time模块处理大全
Oct 25 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
python中使用np.delete()的实例方法
Feb 01 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引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
强制PHP命令行脚本单进程运行的方法
2014/04/15 PHP
PHP动态柱状图实现方法
2015/03/30 PHP
php实现QQ空间获取当前用户的用户名并生成图片
2015/07/25 PHP
php防止网站被攻击的应急代码
2015/10/21 PHP
PHP中STDCLASS用法实例分析
2016/11/11 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
js onload处理html页面加载之后的事件
2013/10/30 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
jQuery插件JWPlayer视频播放器用法实例分析
2017/01/11 Javascript
使用JavaScript破解web
2018/09/28 Javascript
如何在微信小程序里面退出小程序的方法
2019/04/28 Javascript
原生js实现each方法实例代码详解
2019/05/27 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
python实现公司年会抽奖程序
2019/01/22 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
Python实现获取系统临时目录及临时文件的方法示例
2019/06/26 Python
ipad上运行python的方法步骤
2019/10/12 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
Python小白垃圾回收机制入门
2020/06/09 Python
给Django Admin添加验证码和多次登录尝试限制的实现
2020/07/26 Python
翻译专业应届生求职信
2013/11/23 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
2015个人半年总结范文
2015/03/09 职场文书
小学教师个人工作总结2015
2015/04/20 职场文书
小学二年级班主任工作经验交流材料
2015/11/02 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
适合青年人白手起家的创业项目分享
2019/08/16 职场文书
如何用python绘制雷达图
2021/04/24 Python
基于Python实现流星雨效果的绘制
2022/03/18 Python
Python采集壁纸并实现炫轮播
2022/04/30 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis