Hoe te controleren of een string substring bevat in Python

Jinku Hu 30 januari 2023 20 december 2019
  1. in Operator om te controleren of een string een substring bevat
  2. str.find() methode om te controleren of een string substring bevat
  3. str.index() Methode
  4. Substring controle-oplossing Conclusie
Hoe te controleren of een string substring bevat in Python

Het is vrij vaak dat we moeten controleren of de gegeven string een specifieke substring bevat. We zullen hier enkele methoden vermelden en vervolgens de looptijdprestaties vergelijken om de meest efficiënte methode te selecteren.

We nemen de string - It is a given string als de gegeven string en given is de substring die moet worden gecontroleerd.

in Operator om te controleren of een string een substring bevat

in operator is de operator voor lidmaatschapscontrole. x in y wordt geëvalueerd True als x is een lid van y , of met andere woorden, y bevat x.

Het keert terug True als de string y de substring bevat x.

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

in Operatorprestaties

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() methode om te controleren of een string substring bevat

find is een ingebouwde methode van string - str.find(sub).

Het retourneert de laagste index str waarin substring sub is gevonden, anders wordt geretourneerd -1 als sub niet wordt gevonden.

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

str.find() Methode prestaties

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() Methode

str.index(sub) is een string ingebouwde methode die de laagste index retourneert str waarin sub is gevonden. Het wordt verhoogd ValueError wanneer de substring sub niet wordt gevonden.

>>> 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() Methode prestaties

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

Substring controle-oplossing Conclusie

  1. in operator is degene die u moet gebruiken om te controleren of er een substring bestaat in de gegeven string omdat deze de snelste is
  2. str.find() en str.index() kan ook worden gebruikt, maar niet optimaal vanwege de slechte prestaties
Author: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn

Gerelateerde Artikelen - Python String