Question

Quel serait le meilleur moyen de supprimer les doublons de caractères et les jeux de caractères séparés par des espaces dans la chaîne?

Je pense que cet exemple l'explique mieux:

foo = 'h k k h2 h'

devrait devenir:

foo = 'h k h2' # order not important

Autre exemple:

foo = 's s k'

devient:

foo = 's k'
Était-ce utile?

La solution

' '.join(set(foo.split()))

Notez que split () par défaut divisera tous les caractères d'espacement. (par exemple, onglets, nouvelles lignes, espaces)

Donc, si vous voulez diviser UNIQUEMENT sur un espace, vous devez utiliser:

' '.join(set(foo.split(' ')))

Autres conseils

Voulez-vous dire?

' '.join( set( someString.split() ) )

Ce sont les mots uniques délimités par un espace, sans ordre particulier.

out = []
for word in input.split():
    if not word in out:
        out.append(word)
output_string = " ".join(out)

Plus long que l'utilisation d'un ensemble, mais il conserve l'ordre.

Modifier: Tant pis. J'ai raté la partie de la question sur l'ordre n'est pas important. Utiliser un ensemble, c'est mieux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top