List comprehension 使用列表理解消除列表中包含其他列表中的子字符串的字符串

List comprehension 使用列表理解消除列表中包含其他列表中的子字符串的字符串,list-comprehension,python-3.7,List Comprehension,Python 3.7,我有两份清单: list_1 = ['https:/zh-cn.fb.com/siml15', 'https:/fb.com/siml29','https:/en-gb.fb.com/siml29','https:/fb.com/siml4529','https:/pt-br.fb.com/siml29'] list_2 = ['zh-cn','en-gb','es-la','fr-fr','ar-ar','pt-br','ko-kr','it-it','de-de','hi-in','ja-j

我有两份清单:

list_1 = ['https:/zh-cn.fb.com/siml15', 'https:/fb.com/siml29','https:/en-gb.fb.com/siml29','https:/fb.com/siml4529','https:/pt-br.fb.com/siml29']
list_2 = ['zh-cn','en-gb','es-la','fr-fr','ar-ar','pt-br','ko-kr','it-it','de-de','hi-in','ja-jp']
我需要删除列表_1中包含列表_2中的子字符串的项

想要的输出:

['https:/fb.com/siml29','https:/fb.com/siml4529']
有没有办法使用列表理解两次

[x for x in list_1 if y for y in list_2 not in x]

您可以为此使用内部理解和
all
功能:

list_1=['https:/zh cn.fb.com/siml15','https:/fb.com/siml29','https:/en gb.fb.com/siml29','https:/fb.com/siml4529','https:/pt br.fb.com/siml29']
列表2=['zh-cn','en-gb','es-la','fr-fr','ar-ar','pt-br','ko-kr','it-it','de-de','hi-in','ja-jp']
结果=[x代表列表_1中的x,如果全部(y不代表列表_2中的y)]
打印(结果)

非常干净的溶液。OP还应该查看显示如何进行嵌套列表理解的gif的答案。
['https:/fb.com/siml29', 'https:/fb.com/siml4529']