簡體   English   中英

在 Python 中創建一個循環以從另一個列表中的一個列表中查找任何條目

[英]Create a loop in Python to find any entry from one list in another list

有沒有辦法只將我的help_list那些條目附加到final_list ,其中包括一個keywords一個magazine_names

help_list = ["aa mag1", "aa mag2", "aa mag3", "bb mag4", "aa mag4", "bb mag2", "aa mag3", "cc mag1", "aa mag4", "ii mag4"]

keywords = ["aa", "ii"]
magazine_names = ["mag3", "mag4"]

final_list = []

for entry in help_list:    
    if any(element in help_list for element in keywords) and any(element in help_list for element in magazine_names):
        final_list.append(entry)

print(final_list)

附帶說明:對於我的實際代碼,關鍵字列表和雜志列表分別包含 100 多個條目。

k_set = set(keywords)
m_set = set(magazine_names)
final_list = [h for h in help_list if h.split()[0] in k_set and h.split()[1] in m_set]

我認為這可能是您正在尋找的內容:

def contains_one(item, search_terms):
    """Returns true iff any item of `search_terms` is contained in item.
    """
    for search in search_terms:
        if search in item:
            return True
    return False

if __name__ == "__main__":
    help_list = ["aa mag1", "aa mag2", "aa mag3", "bb mag4", "aa mag4", "bb mag2", "aa mag3", "cc mag1", "aa mag4", "ii mag4"]

    keywords = ["aa", "ii"]
    magazine_names = ["mag3", "mag4"]

    final_list = []

    for item in help_list:
        if contains_one(item, keywords) and contains_one(item, magazine_names):
            final_list.append(item)

    print(final_list)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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