Python Metodo String find() con esempi

⚡ Riepilogo intelligente

Python Il metodo `find()` integrato restituisce l'indice della prima occorrenza di una sottostringa all'interno di una stringa. Restituisce -1 quando la sottostringa non è presente, evitando eccezioni.

  • 🔍 Sintassi: La funzione find() accetta una sottostringa più indici di inizio e fine opzionali per limitare l'intervallo di ricerca.
  • 🎯 Prima partita: La funzione find() restituisce l'indice più basso della prima occorrenza, effettuando la scansione da sinistra a destra.
  • ➖ Non trovato: La funzione find() restituisce -1 anziché generare un errore quando la sottostringa è assente.
  • 🔁 rfind(): Il metodo rfind() restituisce l'indice più alto, effettuando la ricerca dal lato destro.
  • ⚠️ indice(): Il metodo index() si comporta come find() ma genera un ValueError quando la sottostringa non è presente.
  • 🤖 Assistenza AI: Gli assistenti di programmazione basati sull'IA generano la logica find() e potenziano la ricerca di sottostringhe nelle pipeline di elaborazione del testo NLP.

Python Trova stringa()

Cosa è Python Trova stringa()?

Python Trova stringa() è una funzione disponibile nel Python libreria per trovare l'indice della prima occorrenza di una sottostringa all'interno di una data stringa. La funzione find() restituisce -1 invece di generare un'eccezione quando la sottostringa specificata non è presente nella stringa data. È una delle Pythonil più utilizzato metodi delle stringhe per individuare il testo.

Sintassi di Python stringa trova()

La sintassi di base del Python La funzione find() è la seguente:

string.find(substring,start,end)

Parametri per il metodo find()

Ecco i tre parametri della funzione find() in Python:

  • sottostringa: La sottostringa che si desidera cercare nella stringa data.
  • inizia a: (facoltativo) Il valore iniziale da cui inizierà la ricerca della sottostringa. Il valore predefinito è 0.
  • fine: (facoltativo) Il valore finale in cui terminerà la ricerca della sottostringa. Per impostazione predefinita, il valore corrisponde alla lunghezza della stringa.

Esempio del metodo find() con valori predefiniti

I parametri passati al Python Il metodo find() accetta come parametri la sottostringa, ovvero la stringa da cercare, più i valori di inizio e fine. Il valore di inizio è 0 per impostazione predefinita, mentre il valore di fine corrisponde alla lunghezza della stringa.

In questo esempio, useremo il metodo find() in Python con valori predefiniti.

Il metodo find() cerca la sottostringa e restituisce la posizione della sua prima occorrenza. Se la sottostringa è presente più volte nella stringa data, restituirà comunque l'indice o la posizione della prima occorrenza.

Esempio:

mystring = "Meet Guru99 Tutorials Site.migliori site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials"))

Produzione:

The position of Tutorials is at: 12

Esempio di find() utilizzando l'argomento start

È possibile cercare una sottostringa all'interno della stringa data e specificare la posizione iniziale da cui avviare la ricerca. A tale scopo è possibile utilizzare il parametro "start".

L'esempio seguente specifica la posizione iniziale come 20 e il metodo find() in Python La ricerca inizierà dalla posizione 20. In questo caso, la posizione finale corrisponderà alla lunghezza della stringa, quindi la ricerca verrà effettuata fino alla fine della stringa a partire dalla posizione 20.

Esempio:

mystring = "Meet Guru99 Tutorials Site.migliori site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 20))

Produzione:

The position of Tutorials is at 48

Esempio di find() che utilizza argomenti iniziali e finali

Utilizzando i parametri di inizio e fine, possiamo limitare la ricerca anziché cercare nell'intera stringa.

Esempio:

mystring = "Meet Guru99 Tutorials Site.migliori site for Python Tutorials!"
print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))

Produzione:

The position of Tutorials is at 12

Esempio del metodo find() per trovare la posizione di una data sottostringa in una stringa

Sappiamo che la funzione find() ci aiuta a trovare l'indice della prima occorrenza di una sottostringa. Restituisce -1 se la sottostringa non è presente nella stringa data. L'esempio seguente mostra l'indice quando la stringa è presente e -1 quando la sottostringa che stiamo cercando non viene trovata.

Esempio:

mystring = "Meet Guru99 Tutorials Site.migliori site for Python Tutorials!"
print("The position of migliori site is at:", mystring.find("migliori site", 5, 40))
print("The position of Guru99 is at:", mystring.find("Guru99", 20))

Produzione:

The position of migliori site is at: 27
The position of Guru99 is at: -1

Python stringa trova()

Migliori Python La funzione rfind() è simile alla funzione find(), con l'unica differenza che rfind() restituisce l'indice più alto per la sottostringa data, mentre find() restituisce l'indice più basso, ovvero il primo indice. Sia rfind() che find() restituiscono -1 se la sottostringa non è presente.

Nell'esempio seguente, abbiamo una stringa "Incontra GuruSito 99 tutorial. miglior sito per Python Tutorial!" e proverà a trovare la posizione della sottostringa Tutorials usando find() e rfind(). La sottostringa Tutorials compare due volte nella stringa.

Ecco un esempio in cui vengono utilizzati sia find() che rfind().

mystring = "Meet Guru99 Tutorials Site.migliori site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))

Produzione:

The position of Tutorials using find() :  12
The position of Tutorials using rfind() :  48

L'output mostra che find() restituisce l'indice della primissima sottostringa Tutorials che trova, mentre rfind() restituisce l'indice dell'ultima sottostringa Tutorials.

Python indice stringa()

Migliori Python La funzione `index()` restituisce la posizione della sottostringa specificata, proprio come `find()`. L'unica differenza tra le due è che `index()` genera un'eccezione se la sottostringa non è presente nella stringa, mentre `find()` restituisce -1.

Ecco un esempio funzionante che mostra il comportamento di index() e find().

mystring = "Meet Guru99 Tutorials Site.migliori site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("Tutorials"))
print("The position of Tutorials using index() : ", mystring.index("Tutorials"))

Produzione:

The position of Tutorials using find() :  12
The position of Tutorials using index() :  12

Otteniamo la stessa posizione sia per find() che per index(). Vediamo un esempio in cui la sottostringa specificata non è presente nella stringa.

mystring = "Meet Guru99 Tutorials Site.migliori site for Python Tutorials!"
print("The position of Tutorials using find() : ", mystring.find("test"))
print("The position of Tutorials using index() : ", mystring.index("test"))

Produzione:

The position of Tutorials using find() :  -1
Traceback (most recent call last):
  File "task1.py", line 3, in <module>
    print("The position of Tutorials using index() : ", mystring.index("test"))
ValueError: substring not found

Nell'esempio precedente, stiamo cercando di trovare la posizione della sottostringa "test". La sottostringa non è presente nella stringa data, quindi usando find() otteniamo la posizione come -1, ma per index() viene generato un errore, come mostrato sopra.

Per trovare l'occorrenza totale di una sottostringa

Per trovare il numero totale di volte in cui una sottostringa è apparsa nella stringa data, useremo la funzione find() in PythonScorreremo la stringa utilizzando un ciclo for dall'indice 0 fino alla fine della stringa, sfruttando il parametro startIndex della funzione find().

Le variabili startIndex e count saranno inizializzate a 0. All'interno del ciclo for, verificheremo se la sottostringa è presente nella stringa data utilizzando find() con startIndex pari a 0.

Il valore restituito da find(), se diverso da -1, aggiornerà startIndex all'indice in cui viene trovata la stringa e incrementerà anche il valore del contatore.

Ecco l'esempio funzionante:

my_string = "test string test, test string testing, test string test string"
startIndex = 0
count = 0
for i in range(len(my_string)):
    k = my_string.find('test', startIndex)
    if(k != -1):
        startIndex = k+1
        count += 1
        k = 0
print("The total count of substring test is: ", count )

Produzione:

The total count of substring test is:  6

" Impara di più riguardo Python Divisione di stringhe()

DOMANDE FREQUENTI

Sì. find() trova la sottostringa esattamente, quindi “Hello”.find(“h”) restituisce -1 mentre “Hello”.find(“H”) restituisce 0. Converti prima la stringa con lower() o upper() quando hai bisogno di una ricerca che non distingua tra maiuscole e minuscole.

L'operatore `in` restituisce solo `True` o `False` per indicare se una sottostringa esiste. La funzione `find()` va oltre e restituisce l'indice esatto della prima corrispondenza, oppure -1 quando la sottostringa non è presente.

Sì. find() accetta indici di inizio e fine negativi, che contano dalla fine della stringa. Ad esempio, “Guru99”.find(“9”, -2) cerca solo gli ultimi due caratteri e restituisce la loro posizione.

Il metodo str.find() individua una corrispondenza alla volta. Per trovare tutte le corrispondenze in una singola chiamata, utilizzare il modulo re: re.findall() restituisce ogni sottostringa corrispondente, mentre re.finditer() restituisce oggetti corrispondenza con ciascuna posizione iniziale.

Il metodo find() è un metodo che accetta solo stringhe, quindi la sua chiamata su una lista genera un AttributeError. Per individuare un elemento in una lista o in una tupla, utilizzare invece il metodo index(), che restituisce la posizione della prima corrispondenza.

Sì. Per una semplice ricerca di sottostringhe, la funzione find() è implementata in C ed è più veloce della compilazione di un'espressione regolare. Utilizza il modulo re solo quando hai bisogno di pattern, caratteri jolly o corrispondenze multiple.

Nell'apprendimento automatico e nell'elaborazione del linguaggio naturale, la funzione find() individua parole chiave, tag o delimitatori durante la pulizia e la tokenizzazione del testo. Rilevare la presenza di una sottostringa, o la sua posizione, aiuta a costruire caratteristiche e ad analizzare gli input del modello.

Sì. GitHub Copilot completa automaticamente le chiamate find(), rfind() e index() a partire da un breve commento che descrive il tuo obiettivo. Gli strumenti di intelligenza artificiale di Agentic vanno oltre, scrivendo la logica di ricerca, aggiungendo argomenti di inizio e fine ed eseguendo i tuoi test.

Riassumi questo post con: