[英]removing unmatching items from 2 lists in python
如果list2中不存在,我需要從list1中刪除所有不匹配的項目
List1 = ['dog', 'cat', 'bird']
List2 = ['dog']
for x in List2:
for y in List1:
if x!=y:
List1.remove(x)
從list1中刪除一個項后,此循環停滯。 這個操作的正確代碼是什么
你可以用list comprehension做這樣的事情:
list_intersection = [item for item in List1 if item in List2]
這將迭代List1
所有項目,並僅返回List2
的元素。
list_intersection
變量現在僅包含出現在兩個列表中的元素,忽略僅出現在其中一個列表中的項目。
如果您不介意在此交集過程中刪除重復項,則可以將兩個列表轉換為集合並執行set1.intersection( set2 )
。 這將做同樣的事情 - 但請記住,將列表轉換為集合將刪除重復項。 完成后,您可以將設置轉換回列表。
l1 = [ 1, 1, 2, 3 ]
l2 = [ 2, 3, 4, 3 ]
l3 = set( l1 ).intersection( set( l2 ) )
l3 = list( l3 )
變量l3
現在將等於[2, 3]
因為它們是兩個原始列表中出現的唯一兩個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.