Opération d'astuce Python: sept façons de déterminer si une sous-chaîne est incluse

Il existe de nombreuses fonctionnalités avancées (et de plus en plus) dans le langage Python, qui sont très populaires parmi les passionnés de Python. Aux yeux de ces personnes, ceux qui peuvent écrire des fonctionnalités avancées que les développeurs ordinaires ne peuvent pas comprendre sont des maîtres et des dieux.

Mais il faut savoir que dans le travail d'équipe, montrer ses compétences est un tabou.

Pourquoi dites vous cela? Laissez-moi parler de mon avis:

  1. Plus le code est simple et plus la logique est claire, moins il y a d'erreurs;
  2. Dans le travail d'équipe, votre code n'est pas seulement maintenu par vous, c'est une bonne morale de réduire le coût de lecture / compréhension de la logique du code.
  3. Le code simple n'utilisera que le sucre syntaxique le plus basique, et les fonctionnalités avancées complexes auront plus de dépendances (comme la version du langage)

Cet article est le troisième contenu de la " Hyun Technology Series ". Dans cette série, je vais résumer et compter les opérations étonnantes que j'ai vues. Ici, si vous êtes un passionné de Python, vous pouvez apprendre quelques compétences de codage intéressantes. En même temps, la lecture de ces contenus peut vous aider à lire le code des autres.

1. Utiliser dans et pas dans

inEt not inen Python, les mots-clés sont très populaires, nous les classerons comme 成员运算符.

À l'aide de ces deux opérateurs membres, nous pouvons déterminer intuitivement et clairement si un objet se trouve dans un autre objet. Les exemples sont les suivants:

>>> "llo" in "hello, python"
True
>>>
>>> "lol" in "hello, python"
False

2. Utilisez la méthode find

En utilisant la méthode find de l'objet string, si une sous-chaîne est trouvée, elle peut retourner la position de la sous-chaîne spécifiée dans la chaîne, si elle n'est pas trouvée, elle retournera -1

>>> "hello, python".find("llo") != -1
True
>>> "hello, python".find("lol") != -1
False
>>

3. Utilisez la méthode index

L'objet string possède une méthode d'index, qui peut renvoyer l'index de la première occurrence de la sous-chaîne spécifiée dans la chaîne. S'il n'est pas trouvé, une exception sera levée, vous devez donc faire attention à la capture lors de son utilisation.

def is_in(full_str, sub_str):
    try:
        full_str.index(sub_str)
        return True
    except ValueError:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

4. Utilisez la méthode de comptage

En utilisant l'idée de sauver le pays avec la courbe d'indice, nous pouvons également utiliser la méthode de comptage pour juger.

Tant que le résultat du jugement est supérieur à 0, cela signifie que la sous-chaîne existe dans la chaîne.

def is_in(full_str, sub_str):
    return full_str.count(sub_str) > 0

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

5. Par des méthodes magiques

Dans la première méthode que nous utilisons pour juger et non dans une sous-chaîne existe dans un autre caractère, lorsque vous utilisez réellement in et pas in, l'interpréteur Python ira vérifier si l'objet a une __contains__méthode magique.

S'il y en a un, exécutez-le. Sinon, Python itérera automatiquement toute la séquence et retournera True tant qu'il trouvera l'élément requis.

Les exemples sont les suivants;

>>> "hello, python".__contains__("llo")
True
>>>
>>> "hello, python".__contains__("lol")
False
>>>

Cette utilisation n'est pas différente de l'utilisation de in et not in, mais elle n'exclut pas que quelqu'un l'écrive comme ceci pour augmenter la difficulté de compréhension du code.

6. Avec l'aide de l'opérateur

Le module opérateur est une interface de fonction opérateur intégrée en python, qui définit certaines fonctions pour les opérations intégrées d'arithmétique et de comparaison. Le module opérateur est implémenté en c, donc la vitesse d'exécution est plus rapide que le code python.

Il existe une méthode dans l'opérateur containspeut facilement déterminer si la sous-chaîne dans la chaîne.

>>> import operator
>>>
>>> operator.contains("hello, python", "llo")
True
>>> operator.contains("hello, python", "lol")
False
>>> 

7. Utilisez une correspondance régulière

En parlant de fonction de recherche, la règle régulière peut certainement être considérée comme un outil professionnel et la complexité des règles de recherche peut vous satisfaire.

Pour la nécessité de déterminer si une chaîne existe dans une autre chaîne, utiliser la régularité est tout simplement exagéré.

import re

def is_in(full_str, sub_str):
    if re.findall(sub_str, full_str):
        return True
    else:
        return False

print(is_in("hello, python", "llo"))  # True
print(is_in("hello, python", "lol"))  # False

Je suppose que tu aimes

Origine blog.csdn.net/weixin_36338224/article/details/109187689
conseillé
Classement