亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

使用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

祥云县| 九龙城区| 潼关县| 黑山县| 柳林县| 麻阳| 文化| 泸溪县| 齐齐哈尔市| 昌都县| 胶南市| 高台县| 静安区| 奉节县| 肃宁县| 永兴县| 望谟县| 河东区| 同江市| 上杭县| 涪陵区| 平南县| 绥江县| 文山县| 增城市| 吉林市| 涞水县| 大英县| 阜宁县| 汉沽区| 安岳县| 松原市| 疏附县| 临泉县| 元朗区| 闽清县| 宜良县| 平山县| 宿州市| 罗山县| 定安县|