Ho una sottostringa:
substring = "please help me out"
Ho un'altra stringa:
string = "please help me out so that I could solve this"
Come faccio a sapere se substring
è un sottoinsieme string
dell'uso di Python?
Ho una sottostringa:
substring = "please help me out"
Ho un'altra stringa:
string = "please help me out so that I could solve this"
Come faccio a sapere se substring
è un sottoinsieme string
dell'uso di Python?
Risposte:
con in
: substring in string
:
>>> substring = "please help me out"
>>> string = "please help me out so that I could solve this"
>>> substring in string
True
string.indexOf(substring) != -1
, più qui
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
# do something
(A proposito, prova a non nominare una variabile string
, poiché esiste una libreria standard Python con lo stesso nome. Potresti confondere le persone se lo fai in un progetto di grandi dimensioni, quindi evitare collisioni come questa è una buona abitudine.)
Se stai cercando più di un vero / falso, saresti più adatto a utilizzare il modulo re, come:
import re
search="please help me out"
fullstring="please help me out so that I could solve this"
s = re.search(search,fullstring)
print(s.group())
s.group()
restituirà la stringa "please help me out".
Ho pensato di aggiungere questo nel caso tu stia cercando come farlo per un colloquio tecnico in cui non vogliono che tu usi la funzione incorporata di Python in
o find
, il che è orribile, ma succede:
string = "Samantha"
word = "man"
def find_sub_string(word, string):
len_word = len(word) #returns 3
for i in range(len(string)-1):
if string[i: i + len_word] == word:
return True
else:
return False
if len(substring) > len(string) return False
anche che l'intervallo del ciclo dovrebbe essere meglio range(len(string)-len(substring))
perché non troverai una parola di tre lettere nelle ultime due lettere della stringa. (Salva alcune iterazioni).
Le persone menzionate string.find()
, string.index()
e string.indexOf()
nei commenti, e le riassumo qui (secondo la documentazione di Python ):
Prima di tutto non c'è un string.indexOf()
metodo. Il collegamento pubblicato da Deviljho mostra che si tratta di una funzione JavaScript.
Secondo string.find()
e string.index()
restituisce effettivamente l'indice di una sottostringa. L'unica differenza è come gestiscono la situazione di sottostringa non trovata: string.find()
restituisce -1
mentre string.index()
solleva un file ValueError
.
Puoi anche provare il metodo find (). Determina se string str si trova in string o in una sottostringa di string.
str1 = "please help me out so that I could solve this"
str2 = "please help me out"
if (str1.find(str2)>=0):
print("True")
else:
print ("False")
In [7]: substring = "please help me out"
In [8]: string = "please help me out so that I could solve this"
In [9]: substring in string
Out[9]: True
Può anche usare questo metodo
if substring in string:
print(string + '\n Yes located at:'.format(string.find(substring)))