String manipulation è un compito comune in qualsiasi linguaggio di programmazione. Python fornisce due modi comuni per verificare se una stringa contiene un’altra stringa.
Python verifica se la stringa contiene un’altra stringa
La stringa Python supporta l’operatore in, quindi possiamo usarlo per verificare se una stringa fa parte di un’altra stringa o meno. La sintassi dell’operatore in è:
sub in str
Restituisce True
se la sottostringa è parte di “str”, altrimenti restituisce False
. Vediamo alcuni esempi di utilizzo dell’operatore in
in Python.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
print(f'"{str1}" contains "{str2}" = {str2 in str1}')
print(f'"{str1}" contains "{str2.lower()}" = {str2.lower() in str1}')
print(f'"{str1}" contains "{str3}" = {str3 in str1}')
if str2 in str1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
Output:
"I love Python Programming" contains "Python" = True
"I love Python Programming" contains "python" = False
"I love Python Programming" contains "Java" = False
"I love Python Programming" contains "Python"
Se non sei familiare con le stringhe con prefisso f in Python, è un nuovo modo per formattare le stringhe introdotto in Python 3.6. Puoi leggere di più a riguardo su stringhe f in Python.
Quando usiamo l’operatore in
, internamente chiama la funzione __contains__(). Possiamo usare questa funzione direttamente anche se è consigliato utilizzare l’operatore in
per scopi di leggibilità.
s = 'abc'
print('s contains a =', s.__contains__('a'))
print('s contains A =', s.__contains__('A'))
print('s contains X =', s.__contains__('X'))
Output:
s contains a = True
s contains A = False
s contains X = False
Utilizzare find() per verificare se una stringa contiene un’altra sottostringa
Possiamo anche utilizzare la funzione find() della stringa per verificare se una stringa contiene o meno una sottostringa. Questa funzione restituisce la posizione del primo indice in cui viene trovata la sottostringa, altrimenti restituisce -1.
str1 = 'I love Python Programming'
str2 = 'Python'
str3 = 'Java'
index = str1.find(str2)
if index != -1:
print(f'"{str1}" contains "{str2}"')
else:
print(f'"{str1}" does not contain "{str2}"')
index = str1.find(str3)
if index != -1:
print(f'"{str1}" contains "{str3}"')
else:
print(f'"{str1}" does not contain "{str3}"')
Output:
"I love Python Programming" contains "Python"
"I love Python Programming" does not contain "Java"
Puoi controllare lo script completo in Python e altri esempi di Python nel nostro Repository GitHub.
Source:
https://www.digitalocean.com/community/tutorials/python-check-if-string-contains-another-string