中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

兴城市| 普格县| 阳江市| 海兴县| 靖安县| 象山县| 达日县| 广东省| 新巴尔虎左旗| 临潭县| 封丘县| 牙克石市| 天等县| 锦州市| 崇左市| 芷江| 河源市| 屏东县| 霍州市| 旌德县| 安远县| 开平市| 东兰县| 新安县| 新昌县| 安岳县| 莒南县| 翁牛特旗| 奎屯市| 林周县| 南雄市| 沈阳市| 武安市| 曲松县| 东海县| 五寨县| 个旧市| 婺源县| 册亨县| 朝阳县| 开封市|