簡體   English   中英

Python 2.7-檢查單元素元組列表中二元素元組中的第一個元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM