![](/img/trans.png)
[英]Deleting/Removing element from a list when comparing to another list Python
[英]Python: Deleting a list element based on elements from another list
我這里有兩個清單。 我正在重排列表i
,檢查它是第一個元素,然后從列表j
刪除相應的元素,例如,如果在重排之后i[0] == 3
,那么我想從列表' j
刪除元素3。
i = ['a','b','c','d','e','f','g','h']
random.shuffle(i)
j = [1,2,3,4,5,6,7,8]
if i[0] == 'a':
del j[0]
elif i[0] == 'b':
del j[1]
elif i[0] == 'c':
del j[2]
elif i[0] == 'd':
del j[3]
elif i[0] == 'e':
del j[4]
elif i[0] == 'f':
del j[5]
elif i[0] == 'g':
del j[6]
elif i[0] == 'h':
del j[7]
有沒有一種方法可以執行此任務而不列出類似if的語句? 就目前而言,如果i[0] == 6
,那么原則上需要檢查幾個if語句,這是在浪費處理能力。
謝謝,史蒂夫
你可以做
j.remove(i[0])
從列表j中刪除值為i [0]的元素。
[編輯]更新:
import random
i = ['a','b','c','d','e','f','g','h']
k=i[:]
random.shuffle(i)
print i
print k
print j
j = [1,2,3,4,5,6,7,8]
print i[0]
print k.index(i[0])
del j[k.index(i[0])]
print j
i = [a,b,c,d,e,f,g,h]
base = [a,b,c,d,e,f,g,h]
random.shuffle(i)
j = [1,2,3,4,5,6,7,8]
del j[base.index(i[0])]
您可以使用索引方法執行刪除j
項目:
i = [a,b,c,d,e,f,g,h]
random.shuffle(i)
j = [1,2,3,4,5,6,7,8]
del j[j.index(i[0])]
random.shuffle(i)
del j[j.index(i[0])]
如果經過洗牌,i [0] == 3,那么我想從列表'j'中刪除元素3。
如果這只是您要完成的工作,那么就去買j.remove(i[0])
或者,如果您堅持使用del
, del j[i[0]]
,那么我不會(僅當您想讓代碼閱讀者清楚該變量將不再在程序中使用時,才使用del在您的代碼中更進一步。在這里,它可以工作,但list.remove
更好地向讀者表達您的意圖。)
讀了你可以用列表做了Python文檔中還有什么在列表, 在這里 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.