If string does not contain any of list of strings in python

后端 未结 3 2732
萌比男神i
萌比男神i 2021-02-20 18:35

I have a list of strings, from which I want to locate every line that has \'http://\' in it, but does not have \'lulz\', \'lmfao\', \'.png\', or any other items in a list of str

3条回答
  •  逝去的感伤
    2021-02-20 19:37

    Here is an option that is fairly extensible if the list of strings to exclude is large:

    exclude = ['lulz', 'lmfao', '.png']
    filter_func = lambda s: 'http://' in s and not any(x in s for x in exclude)
    
    matching_lines = filter(filter_func, string_list)
    

    List comprehension alternative:

    matching_lines = [line for line in string_list if filter_func(line)]
    

提交回复
热议问题