Фильтрация списка строк по их содержимому
При наличии списка строк вы можете столкнуться с необходимостью извлечь только те, которые содержат конкретная подстрока. В Python существует несколько эффективных способов выполнения этой операции фильтрации.
Использование списков
Один из самых простых и рекомендуемых подходов — использовать мощные списковые генераторы Python. . Понимания списков предоставляют краткий и выразительный способ создания нового списка на основе элементов существующего. Для вашего конкретного требования к фильтрации строк, содержащих «ab», вы можете использовать следующее понимание:
lst = ['a', 'ab', 'abc', 'bac']
result = [k for k in lst if 'ab' in k]
Это понимание перебирает каждую строку в исходном списке ('a', 'ab', 'abc', 'bac') и проверяет если он содержит подстроку «ab». Если это правда, строка добавляется в результирующий список. Это дает вам желаемый отфильтрованный список: ['ab', 'abc'].
Использование функции фильтра
Другой метод фильтрации строк в Python — использовать функция фильтра. Эта функция принимает функцию фильтра и итерацию в качестве аргументов и возвращает итератор, который возвращает элементы итерации, удовлетворяющие функции фильтра. В вашем случае вы можете использовать фильтр следующим образом:
lst = ['a', 'ab', 'abc', 'bac']
result = list(filter(lambda k: 'ab' in k, lst))
Функция фильтра принимает анонимную функцию (лямбда-функция) в качестве первого аргумента, которая проверяет, существует ли 'ab' во входных данных нить. Второй аргумент — исходный список. Результатом фильтра является итератор, который затем преобразуется в список с помощью list(). Опять же, это создает желаемый список ['ab', 'abc'].
Хотя и генераторы списков, и функция фильтра могут обеспечить желаемую фильтрацию, генераторы списков обычно предпочтительнее из-за их краткости и удобочитаемости, особенно для простые задачи фильтрации, подобные этой.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3