【发布时间】:2018-12-21 19:57:25
【问题描述】:
我有 2 个列表
list_links = ['google/order', 'google/faq', 'google/404']
prefixes = ['order', '404']
我需要从 list_links 中删除所有包含 prefixes
的元素结果必须是
list_clean = ['google/faq']
我正在尝试做这样的事情
for link in list_links:
for pre in prefixes:
if pre in link:
list_links.remove(link)
break
但它跳过了一些元素,我认为这是因为我无法从我正在循环的列表中删除元素 我用谷歌搜索了很多例子,但都是数字,对我没有用
【问题讨论】:
-
你能给我们展示一些不起作用的例子吗?
-
@Prune 我不太喜欢这里的欺骗,因为它太笼统了,而这是与第二个列表进行比较。我也不认为给出的答案是最有效的
-
prefixes = set(prefixes)然后result = [item for item in list_links if item.split('/')[1] not in prefixes]可能更快
标签: python list element contains