Список понятий и условий?

Я пытаюсь проверить, могу ли я сделать этот код лучше, используя списки.
Допустим, у меня есть следующие списки:

a_list = [ 'HELLO', 'FOO', 'FO1BAR', 'ROOBAR', 'SHOEBAR' ] regex_list = [lambda x: re.search(r'FOO', x, re.IGNORECASE), lambda x: re.search(r'RO', x, re.IGNORECASE)] 

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

Например: ==>

 newlist = [] for each in a_list: for regex in regex_list: if(regex(each) == None): newlist.append(each) 

Как это сделать, используя списки? Возможно ли это?

2 Solutions collect form web for “Список понятий и условий?”

Конечно, я думаю, это должно сделать это

 newlist = [s for s in a_list if not any(r(s) for r in regex_list)] 

EDIT : при ближайшем рассмотрении я замечаю, что ваш примерный код фактически добавляет в новый список каждую строку в a_list , который не соответствует всем регулярным выражениям – и, более того, он добавляет каждую строку один раз для каждого регулярного выражения, которое не соответствует. Мое понимание списка делает то, что, я думаю, вы имели в виду, добавляя только одну копию каждой строки, которая не соответствует ни одному из регулярных выражений.

Я бы обработал ваш код до этого:

 a_list = [ 'HELLO', 'FOO', 'FO1BAR', 'ROOBAR', 'SHOEBAR' ] regex_func = lambda x: not re.search(r'(FOO|RO)', x, re.IGNORECASE) 

Тогда у вас есть два варианта:

  1. Фильтр

    newlist = filter(regex_func, a_list)

  2. Перечисление списков

    newlist = [x for x in a_list if regex_func(x)]

  • Дублирующий элемент в списке python
  • Pythonic способ распечатать элементы списка
  • Вложенный список для dict
  • Почему понимание списка намного быстрее, чем numpy для умножения массивов?
  • Подсчет положительных элементов в списке с использованием списков Python
  • Элементы sum в списке python только в том случае, если элементы в отдельном булевом списке True
  • Элегантный способ получить hashtags из строки в Python?
  • Использование определения списка для соответствия значениям словарей, которые хранятся в списках
  •  
    Interesting Posts for Van-Lav

    Инструменты для компиляции синтаксиса Python / Boo / Ruby в C / C ++ / LLVM / Javascript (с использованием JS ArrayBuffer для скорости)

    Почему python dict.update () не возвращает объект?

    Относительное связывание файлов в PDF (Reportlab)

    Как разрешить ошибки импорта в python?

    Python 2.7.2: plistlib с itunes xml

    Можно ли запустить два веб-сервера на одном компьютере?

    Путь Python для пула приложений Google App Engine

    Как мы можем сделать импорт __future__ глобальным?

    Python: доступ к значениям YAML с использованием «точечной нотации»

    Совет по переводу кода с очень несвязанных языков (в данном случае Scheme to Python)?

    Метод настройки носа для носа Python / тип разрыва не выполняется для тестовых генераторов

    Python strip () несколько символов?

    Какова цель распределения времени ответа в locust.io?

    Как настроить Eclipse для запуска браузера при выборе Run или Debug с помощью плагина Pydev

    Эффективный способ создания строк из списка

    Python - лучший язык программирования в мире.