[英]Python 2.7 - Check if first element in two-element tuple in list of single-element tuples
我有兩個元組列表。
第一個列表包含具有兩個元素的元組:
list_a = [('a','apple'), ('b','banana'), ('c','cherry')]
第二個列表包含只有一個元素的元組:
list_b = [('d',), ('e',), ('a',)]
我需要刪除list_a中的元組,該元組的第一個元素包含在list_b中。 因此,目標是呈現list_a:
list_a = [('b','banana'), ('c','cherry')]
我試過了:
for la in list_a:
if la[0] in list_b:
list_a.remove(la)
您無法從要遍歷的列表中刪除元素。 改用列表理解:
list_a = [la for la in list_a if la[:1] not in list_b]
注意,我們測試la[:1]
以使用(單個元素)元組進行測試; la[0]
只是單個字符串。
如果必須經常執行此操作,請考慮使用list_b
代替:
set_b = set(list_b)
對於列表成員資格測試,集合中的查找需要固定時間,而線性時間要花費線性時間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.