当前位置: 首页 > 编程笔记 >

Python 实现数组相减示例

岳卓君
2023-03-14
本文向大家介绍Python 实现数组相减示例,包括了Python 实现数组相减示例的使用技巧和注意事项,需要的朋友参考一下

问题描述:

有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实现两个list对应元素相减操作示例,包括了Python实现两个list对应元素相减操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现两个list对应元素相减操作。分享给大家供大家参考,具体如下: 两个list的对应元素操作,这里以相减为例: 运行结果: 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操

  • 本文向大家介绍python实现list元素按关键字相加减的方法示例,包括了python实现list元素按关键字相加减的方法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python实现list元素按关键字相加减的方法。分享给大家供大家参考,具体如下: Python list中的元素按关键字相加或相减: 运行: 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python列表

  • 本文向大家介绍Python实现字符串与数组相互转换功能示例,包括了Python实现字符串与数组相互转换功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现字符串与数组相互转换功能。分享给大家供大家参考,具体如下: 字符串转数组 运行结果: 数组转字符串 运行结果: 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数组操作技巧总结》、《Python字

  • 本文向大家介绍Python实现翻转数组功能示例,包括了Python实现翻转数组功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现翻转数组功能。分享给大家供大家参考,具体如下: 题目描述 给定一个长度为n的整数数组a,元素均不相同,问数组是否存在这样一个片段,只将该片段翻转就可以使整个数组升序排列。其中数组片段[l,r]表示序列a[l], a[l+1], ..., a[

  • 本文向大家介绍python实现动态数组的示例代码,包括了python实现动态数组的示例代码的使用技巧和注意事项,需要的朋友参考一下 实现一个支持动态扩容的数组并完成其增删改查 测试代码 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 本文向大家介绍浅谈keras中的Merge层(实现层的相加、相减、相乘实例),包括了浅谈keras中的Merge层(实现层的相加、相减、相乘实例)的使用技巧和注意事项,需要的朋友参考一下 【题目】keras中的Merge层(实现层的相加、相减、相乘) 详情请参考: Merge层 一、层相加 keras.layers.Add() 添加输入列表的图层。 该层接收一个相同shape列表张量,并返回它们的