Come verificare se una stringa contiene una stringa in Python

Jinku Hu 10 ottobre 2023
  1. in Operatore per controllare se una stringa contiene una sottostringa
  2. Metodo str.find() per verificare se una stringa contiene una sottostringa
  3. str.index()Metodo
  4. Soluzione per il controllo delle stringhe Conclusione
Come verificare se una stringa contiene una stringa in Python

Molto spesso è necessario verificare se la stringa data contiene un substrato specifico. Elencheremo qui alcuni metodi, e poi confronteremo le prestazioni del tempo di esecuzione per selezionare il metodo più efficiente.

Prenderemo la stringa - It is a given string come la stringa data e given è la sottostringa da controllare.

in Operatore per controllare se una stringa contiene una sottostringa

in operator è l’operatore di controllo dei soci. x in y è valutato come True se x è un membro di y, o in altre parole, y contiene x.

Restituisce True se la stringa y contiene la sottostringa x.

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

in Prestazioni dell’operatore

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

Metodo str.find() per verificare se una stringa contiene una sottostringa

find è un metodo integrato di string - str.find(sub).

Restituisce l’indice più basso in str dove si trova la sottostringa sub, altrimenti restituisce -1 se sub non viene trovato.

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

Prestazioni del metodo str.find()Metodo

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

str.index(sub) is a string built-in method that returns the lowest index in str where sub is found. It will raise ValueError when the substring sub is not found.

>>> 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()Prestazioni del metodo

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

Soluzione per il controllo delle stringhe Conclusione

  1. in operatore in è quello che si dovrebbe usare per controllare se una sottostringa esiste nella stringa data perché è il più veloce
  2. str.find() e str.index() potrebbero anche essere usati, ma non in modo ottimale a causa delle scarse prestazioni
Autore: 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 Facebook

Articolo correlato - Python String