J'ai une sous-chaîne:
substring = "please help me out"
J'ai une autre chaîne:
string = "please help me out so that I could solve this"
Comment savoir s'il substrings'agit d'un sous-ensemble de l' stringutilisation de Python?
J'ai une sous-chaîne:
substring = "please help me out"
J'ai une autre chaîne:
string = "please help me out so that I could solve this"
Comment savoir s'il substrings'agit d'un sous-ensemble de l' stringutilisation de Python?
Réponses:
avec 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, plus ici
substringin string, alors vous voulez utiliser string.index
foo = "blahblahblah"
bar = "somethingblahblahblahmeep"
if foo in bar:
# do something
(Au fait, essayez de ne pas nommer une variable string, car il existe une bibliothèque standard Python avec le même nom. Vous pourriez confondre les gens si vous faites cela dans un grand projet, donc éviter les collisions comme celle-là est une bonne habitude à prendre.)
Si vous recherchez plus qu'un vrai / faux, vous seriez le mieux placé pour utiliser le module re, comme:
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() renverra la chaîne "s'il vous plaît aidez-moi".
Je pensais que j'ajouterais ceci au cas où vous cherchiez comment faire cela pour une interview technique où ils ne veulent pas que vous utilisiez la fonction intégrée de Python inou find, ce qui est horrible, mais se produit:
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également que la plage de boucles devrait être mieux range(len(string)-len(substring))car vous ne trouverez pas de mot de trois lettres dans les deux dernières lettres de la chaîne. (Enregistre quelques itérations).
Personnes mentionnées string.find(), string.index()et string.indexOf()dans les commentaires, et je les résume ici (selon la documentation Python ):
Tout d'abord, il n'y a pas de string.indexOf()méthode. Le lien publié par Deviljho montre qu'il s'agit d'une fonction JavaScript.
Ensuite, string.find()et string.index()retourne en fait l'index d'une sous-chaîne. La seule différence est la façon dont ils gèrent la situation de sous-chaîne introuvable: string.find()renvoie -1tandis que string.index()déclenche un ValueError.
Vous pouvez également essayer la méthode find (). Il détermine si la chaîne str apparaît dans la chaîne ou dans une sous-chaîne de chaîne.
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
Peut également utiliser cette méthode
if substring in string:
print(string + '\n Yes located at:'.format(string.find(substring)))