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 substring
s'agit d'un sous-ensemble de l' string
utilisation de Python?
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 icisubstring
instring
, alors vous voulez utiliser string.index(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.)la source
Si vous recherchez plus qu'un vrai / faux, vous seriez le mieux placé pour utiliser le module re, comme:
s.group()
renverra la chaîne "s'il vous plaît aidez-moi".la source
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
in
oufind
, ce qui est horrible, mais se produit:la source
if len(substring) > len(string) return False
également que la plage de boucles devrait être mieuxrange(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()
etstring.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()
etstring.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-1
tandis questring.index()
déclenche unValueError
.la source
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.
la source
la source
la source
Peut également utiliser cette méthode
la source
Au lieu d'utiliser find (), l'un des moyens les plus simples est d'utiliser 'in' comme ci-dessus.
si 'substring' est présent dans 'str' alors si part s'exécutera, sinon part s'exécutera.
la source