Как фильтровать элементы списка на основе регулярных выражений в python?

#python #list

#python #Список

Вопрос:

У меня есть два элемента списка, и я хочу сгенерировать список на основе несовпадающих элементов. Вот что я пытаюсь сделать:

 from __future__ import print_function
import os

mainline_list = ['one', 'two', 'three', 'four']
non_main_list = ['two', 'seven', 'six', 'four', 'four-3.1', 'new_three']
itemized_list = [item for item in non_main_list if item not in mainline_list]
print(itemized_list)
  

Что возвращает, так это

 ['seven', 'six', 'four-3.1', 'new_three']
  

в то время как я хочу:

  ['seven', 'six']
  

Ответ №1:

Регулярное выражение не обязательно, вы можете использовать all() встроенную функцию:

 mainline_list = ['one', 'two', 'three', 'four']
non_main_list = ['two', 'seven', 'six', 'four', 'four-3.1', 'new_three']

print([item for item in non_main_list if all(i not in item for i in mainline_list)])
  

С принтами:

 ['seven', 'six']