91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用Python怎么對數組進行相減

發布時間:2021-04-06 16:33:15 來源:億速云 閱讀:1225 作者:Leah 欄目:開發技術

本篇文章為大家展示了使用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怎么對數組進行相減,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安康市| 启东市| 武清区| 泗阳县| 大姚县| 嵩明县| 普兰县| 毕节市| 海伦市| 桃园市| 婺源县| 新营市| 遂溪县| 乌拉特前旗| 武平县| 东方市| 湖口县| 西和县| 斗六市| 宁德市| 桐乡市| 云阳县| 太白县| 杭锦后旗| 泰宁县| 枣阳市| 内黄县| 赣州市| 孝感市| 浦东新区| 五河县| 霍林郭勒市| 宜春市| 永安市| 叶城县| 昭觉县| 东明县| 平陆县| 东兴市| 大同市| 苍山县|