Как использовать и исправить проблемы с str.contains в Python?
Как подтвердить, что строка в Python содержит другую строку
Вам может потребоваться проверить, содержит ли строка подстроку в Python. Для этой цели в Python рекомендуется использовать оператор принадлежности in
. В этом руководстве вы узнаете, как использовать этот оператор, а также как найти подстроки в столбцах pandas DataFrame.
Как подтвердить наличие подстроки
Если вам нужно проверить, содержит ли строка подстроку, используйте оператор принадлежности in
в Python. Это рекомендуемый способ подтвердить наличие подстроки в строке:
Оператор in
дает вам быстрый и понятный способ проверить, содержится ли подстрока в строке. Вы можете заметить, что эта строка кода почти читается как обычный английский текст.
Примечание: Если вы хотите проверить, отсутствует ли подстрока в строке, тогда можно использовать оператор not in
:
Поскольку подстрока "secret"
присутствует в raw_file_content
, оператор not in
вернет значение False
.
Оператор in
возвращает логическое значение (Boolean):
True
, если подстрока найдена в строкеFalse
, если подстрока не найдена в строке
Вы можете использовать этот интуитивно понятный синтаксис в условных операторах для принятия решений в вашем коде:
В этом примере вы используете оператор принадлежности, чтобы проверить, есть ли подстрока "secret"
в raw_file_content
. Если она есть, то будет выведено сообщение “Нашел!“.
Обобщение проверки с поддержкой регистра
Используя оператор in
, вы можете проверить наличие подстроки в строке с поддержкой регистра. То есть, оператор in
учитывает регистр символов при сравнении:
Поскольку подстрока "string"
отличается от "String"
по регистру символов, оператор in
возвращает значение False
. Если вам нужно выполнить проверку без учета регистра, существуют несколько способов это сделать.
Использование метода lower()
для обобщения проверки
Один из способов обобщить проверку и игнорировать регистр символов - это использовать метод lower()
для приведения обоих строк к нижнему регистру:
Теперь, приведя обе строки к нижнему регистру, оператор in
возвращает значение True
, потому что подстрока "string"
содержится в строке "this is a string"
.
Узнайте больше о подстроке
Кроме оператора in
существуют и другие методы для работы с подстроками в Python. Вам может понадобиться узнать больше информации о подстроке, такую как ее индекс или количество повторений в строке.
Приведенный выше код демонстрирует использование методов index()
и count()
для получения индекса первого вхождения подстроки и количества вхождений подстроки в строке. В результате будет выведено:
Таким образом, вы можете получить более подробную информацию о подстроке и использовать эту информацию в своей программе.
Поиск подстроки с использованием регулярных выражений
Например, вы можете использовать модуль re
в Python для поиска подстроки с использованием регулярного выражения:
В этом примере используется регулярное выражение st[a-z]+
, которое соответствует подстрокам, начинающимся с буквы “st” и содержащим любые буквы нижнего регистра. Если подстрока найдена, будет выведено сообщение “Подстрока найдена!“.
Поиск подстроки в столбце pandas DataFrame
Если вам нужно выполнить поиск подстроки в столбце pandas DataFrame, есть удобный способ это сделать с помощью метода str.contains()
:
В этом примере используется метод str.contains()
для поиска подстроки "Developer"
в столбце "Title"
DataFrame. Результатом будет новый DataFrame filtered_df
, содержащий только строки, в которых найдена заданная подстрока.
Итоги
В этом руководстве вы узнали, как проверить наличие подстроки в строке в Python с помощью оператора принадлежности in
. Вы также узнали, как обобщить проверку, игнорируя регистр символов, и использовать другие методы для работы с подстроками. Кроме того, вы узнали, как использовать регулярные выражения для выполнения сложных проверок и поиска подстроки, а также как выполнять поиск подстроки в столбце pandas DataFrame. Надеюсь, эта информация будет полезной при работе с текстовыми данными в Python.