Maison >développement back-end >Tutoriel Python >Comment trouver une sous-chaîne en Python

Comment trouver une sous-chaîne en Python

伊谢尔伦
伊谢尔伦original
2017-06-28 13:27:011706parcourir

Cet article présente principalement les conseils pour trouver des sous-chaînes dans Pythonstring Les amis qui en ont besoin peuvent se référer à

Si on vous demande d'écrire un programme Check. si la chaîne s2 contient s1. Peut-être pouvez-vous écrire intuitivement le code suivant :

#determine whether s1 is a sub
stringof s2 def isSubstring1(s1,s2): 
    tag = False 
    len1 = len(s1) 
    len2 = len(s2) 
    for i in range(0,len2): 
        if s2[i] == s1[0]: 
            for j in range(0,len1): 
                if s2[i]==s1[j]: 
                    tag = True 
    
return tag

Mais c'est Python, nous pouvons utiliser la méthode find() fournie avec les chaînes, nous pouvons donc faire ceci :

def isSubstring2(s1,s2): 
    tag = False 
    if s2.find(s1) != -1: 
        tag = True 
    return tag


Ce qui est triste, c'est qu'il s'avère que le mot-clé "in" en Python peut être utilisé non seulement pour les listes, les primitives et autres types de données, mais aussi pour les chaînes. Donc, vous n'avez besoin que d'une seule ligne de code pour le faire ici :

def isSubstring3(s1,s2):
    return s1 in s2


Je m'en suis rendu compte avec le recul, et j'ai honte ;-)

De même, supposons que vous souhaitez trouver plusieurs éléments dans une chaîne Vérifiez si la sous-chaîne existe et imprimez la position de ces chaînes et leur première occurrence :

def findSubstrings(substrings,destString):
    res =  map(lambda x:str([destString.index(x),x]),filter(lambda x:x in destString,substrings))
    if res:
        return ', '.join(list(res))
 
;-)  very cool~


MISE À JOUR : Peu importe si vous ne l'êtes pas habitué à la dernière syntaxe apparemment compliquée, vous pouvez utiliser une analyse de liste, plus concise :

def findSubstrings(substrings,destString):
    return ', '.join([str([destString.index(x),x]) for x in substrings if x in destString])


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn