使用列表理解来消除列表中包含另一个列表中的子字符串的字符串
use list comprehensions to eliminate strings in list that include substrings in another list
我有两个列表:
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']
我需要删除 list_1 中包含 list_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']
list_2 = ['zh-cn', 'en-gb', 'es-la', 'fr-fr', 'ar-ar', 'pt-br', 'ko-kr', 'it-it', 'de-de', 'hi-in', 'ja-jp']
result = [x for x in list_1 if all(y not in x for y in list_2)]
print(result)
['https:/fb.com/siml29', 'https:/fb.com/siml4529']
我有两个列表:
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']
我需要删除 list_1 中包含 list_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']
list_2 = ['zh-cn', 'en-gb', 'es-la', 'fr-fr', 'ar-ar', 'pt-br', 'ko-kr', 'it-it', 'de-de', 'hi-in', 'ja-jp']
result = [x for x in list_1 if all(y not in x for y in list_2)]
print(result)
['https:/fb.com/siml29', 'https:/fb.com/siml4529']