3 votes

Quel est le moyen le plus efficace de vérifier si l'une des cinq chaînes est identique ?

Supposons que nous ayons une liste de 5 chaînes de caractères :

list = ['hello', 'alloha', 'hi there', 'good day', 'hello']

Je veux voir si l'une des chaînes est identique (bonus : et si l'une des chaînes est identique, obtenir l'indice des éléments identiques dans la liste).

Quel est le moyen le plus efficace de résoudre cette petite tâche ? Cela fonctionnera-t-il pour une liste plus importante comportant plus de deux éléments identiques ?

Je pensais peut-être (d'une manière ou d'une autre) comparer les longueurs de chaque chaîne l'une à l'autre et ensuite, si les mathématiques des longueurs comparent les lettres sur la même position.

4voto

ti7 Points 1865

Les hacher avec un ensemble et comparer les longueurs

if len(set(mylist)) != len(mylist):
    print("some members match!")
else:
    print("no members match")

1voto

Jim Points 8793

Une bonne approche pour se faire une idée de leur existence. tout en Pour obtenir les indices, il faut créer une petite fonction qui contient ces informations dans la valeur de retour.

Plus précisément, il vérifie l'appartenance à un ensemble et, si des indices similaires sont trouvés, il renvoie une liste de ceux-ci (c'est-à-dire que des mots similaires existent), tandis que si aucun n'est trouvé, il renvoie une liste vide (c'est-à-dire aucune correspondance) :

def sim(ls):
    s = set()
    for i, j in enumerate(ls):
        if j not in s:
            s.add(j)  # add the value
        else:
            yield i   # yield the index

Vous pouvez ensuite récupérer les résultats obtenus à l'aide de cette fonction et les comparer à la valeur contenue dans un fichier de type if si nécessaire :

lst = ['hello', 'alloha', 'hi there', 'good day', 'hello']
res = list(sim(lst))   # get indices if they exist

# check against them
if res:
    print("Similar values in indices :", res)
else:
    print("print("No similar words")

Cela s'imprime :

Similar values in indices : [4]

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X