python删除列表1中的元素,如果它包含列表2中的前缀

NiP*_*iPa 0 python element contains list

我有2个清单

list_links = ['google/order', 'google/faq', 'google/404']
prefixes = ['order', '404']
Run Code Online (Sandbox Code Playgroud)

我需要删除包含前缀的list_links中的所有元素

结果必须是

list_clean = ['google/faq']
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情

for link in list_links:
    for pre in prefixes:
        if pre in link:
            list_links.remove(link)
            break
Run Code Online (Sandbox Code Playgroud)

但它跳过了一些元素,我认为它是因为我不能从列表中删除元素,我正在搜索的那一刻我已经搜索了很多例子,但这一切都有数字和避风港对我有用

Dan*_*ejo 5

你不应该同时迭代和删除,而是使用列表理解:

list_links = ['google/order', 'google/faq', 'google/404']
prefixes = ['order', '404']

result = [e for e in list_links if not any(prefix in e for prefix in prefixes)]

print(result)
Run Code Online (Sandbox Code Playgroud)