Как проверить, содержит ли струна подвеску на Python

  1. in операторе для проверки, содержит ли строка подстроку
  2. метод str.find() для проверки, содержит ли строка подстроку
  3. str.index() Метод
  4. Решение для проверки подстрок Вывод

Довольно часто возникает необходимость проверить, содержит ли данная строка определенную подстроку. Здесь мы перечислим некоторые методы, а затем сравним производительность по времени выполнения, чтобы выбрать наиболее эффективный метод.

Мы возьмем строку - It is a given string, так как заданная строка и given - это подстрока, которую нужно проверить.

in операторе для проверки, содержит ли строка подстроку

in операторе - это оператор проверки членства. x in y оценивается как Истина, если x является членом y, или, другими словами, y содержит x.

Это возвращает True, если строка y содержит подстроку x.

>>> `given` in `It is a given string`
True
>>> `gaven` in `It is a given string`
False

in работе оператора

import timeit

def in_method(given, sub):
    return sub in given

print(min(timeit.repeat(lambda: in_method('It is a given string', 'given')))
0.2888628

метод str.find() для проверки, содержит ли строка подстроку

find - это встроенный метод string - str.find(sub).

Он возвращает самый низкий индекс в str, где найдена подстрока sub, иначе возвращает -1, если sub не найден.

>>> givenStr = 'It is a given string'
>>> givenStr.find('given')
8
>>> givenStr.find('gaven')
-1

str.find() Производительность метода

import timeit

def find_method(given, sub):
    return given.find(sub)

print(min(timeit.repeat(lambda: find_method('It is a given string', 'given'))))
0.42845349999999993

str.index() Метод

str.index(sub) является string встроенным методом, который возвращает самый низкий индекс в str, где sub находится. Он увеличивает ValueError, когда подстрока sub не найдена.

>>> givenStr = 'It is a given string'
>>> givenStr.index('given')
8
>>> givenStr.index('gaven')
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    givenStr.index('gaven')
ValueError: substring not found

str.index() Производительность метода

import timeit

def find_method(given, sub):
    return given.find(sub)

print(min(timeit.repeat(lambda: find_method('It is a given string', 'given'))))
0.457951

Решение для проверки подстрок Вывод

  1. Оператор in - это оператор, который следует использовать для проверки существования подстроки в заданной строке, так как он самый быстрый.
  2. str.find() и str.index() также можно было бы использовать, но не оптимально из-за плохой производительности.

Сопутствующая статья - Python String

  • Как проверить, что строка пуста в Python
  • Как удалить белый пробел в строке на Python
  • Как конвертировать строку в дату на Python
  • Как преобразовать строку в нижний кейс на Python 2 и 3
  • Как преобразовать список в струну на Python
  • Как преобразовать строку в плавучую или интру в Python
  • Как прочитать один файл строка за строкой к списку на Python
  • Как преобразовать строку в байты на Python
  • comments powered by Disqus