Рубрики

Python | Фильтр списка строк на основе списка подстрок

Имея два списка строк string и substr , напишите программу на Python, чтобы отфильтровать все строки в строке , содержащей строку в substr .

Примеры:

Input : string = ['city1', 'class5', 'room2', 'city2']
        substr = ['class', 'city']
Output : ['city1', 'class5', 'city2']

Input : string = ['coordinates', 'xyCoord', '123abc']
        substr = ['abc', 'xy']
Output : ['xyCoord', '123abc']

Метод № 1: Использование списка понимания

Мы можем использовать понимание списка вместе с оператором in, чтобы проверить, содержится ли строка в 'substr' в 'string' или нет.

# Python3 программа для фильтрации списка
# строки на основе другого списка

import re

  

def Filter(string, substr):

    return [str for str in string if

             any(sub in str for sub in substr)]

      
# Код драйвера

string = ['city1', 'class5', 'room2', 'city2']

substr = ['class', 'city']

print(Filter(string, substr))

Выход:

['city1', 'class5', 'city2']

Метод № 2: Python Regex

# Python3 программа для фильтрации списка
# строки на основе другого списка

import re

  

def Filter(string, substr):

    return [str for str in string 

    if re.match(r'[^\d]+|^', str).group(0) in substr]

      
# Код драйвера

string = ['city1', 'class5', 'room2', 'city2']

substr = ['class', 'city']

print(Filter(string, substr))

Выход:

['city1', 'class5', 'city2']

Рекомендуемые посты:

Python | Фильтр списка строк на основе списка подстрок

0.00 (0%) 0 votes