Obtenir une valeur unique de la liste en python [duplicate]

Cet article a été traduit de: Obtenir des valeurs uniques à partir d'une liste en python [duplicate]

Cette question a déjà une réponse ici: Cette question a déjà une réponse ici :

Je veux obtenir les valeurs uniques de la liste suivante: Je veux obtenir les valeurs uniques de la liste suivante :

[u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']

La sortie dont j'ai besoin est: La sortie dont j'ai besoin est:

[u'nowplaying', u'PBS', u'job', u'debate', u'thenandnow']

Ce code fonctionne: Ce code fonctionne :

output = []
for x in trends:
    if x not in output:
        output.append(x)
print output

existe-t-il une meilleure solution que je devrais utiliser? devrais- je utiliser une meilleure solution ?


# 1 étage

Référence: https://stackoom.com/question/s7CA/ Obtenez la valeur unique de la liste en python-duplicate


# 2F

quel type est votre variable de sortie? quel type est votre variable de sortie ?

Python ensembles sont juste le Ce que vous avez besoin. Python jeu est ce que vous avez besoin. Déclarez la sortie comme ceci: Déclarez la sortie comme ceci :

output = set([]) # initialize an empty set

et vous êtes prêt à ajouter des éléments avec output.add(elem)et assurez-vous qu'ils sont uniques. Vous êtes prêt à ajouter des éléments avec et assurez-vous qu'ils sont uniques .output.add(elem)

Avertissement: les ensembles NE PAS conserver l'ordre d'origine de la liste Avertissement: les ensembles NE PAS conserver l'ordre d'origine de la liste .


# 3 étage

Déclarez d'abord votre liste correctement, séparés par des virgules. Commencez par déclarer votre liste correctement, séparés par des virgules. Vous pouvez obtenir les valeurs uniques en convertissant la liste en un ensemble. Vous pouvez obtenir les valeurs uniques en convertissant la liste en un ensemble .

mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
myset = set(mylist)
print(myset)

Si vous l'utilisez en tant que liste, vous devez le reconvertir en liste en faisant: Si vous l'utilisez en tant que liste, vous devez le reconvertir en liste en procédant comme suit:

mynewlist = list(myset)

Une autre possibilité, probablement plus rapide, serait d'utiliser un ensemble depuis le début, au lieu d'une liste. Une autre possibilité, probablement plus rapide, est d'utiliser un ensemble depuis le début au lieu d'une liste . Alors votre code devrait être: Alors votre code devrait être :

output = set()
for x in trends:
    output.add(x)
print(output)

Comme cela a été souligné, les ensembles ne conservent pas l'ordre d'origine. Comme déjà indiqué, les ensembles ne conservent pas l'ordre d'origine . Vous avez besoin SO SI, si vous regardez le propos à l' a ordonné la SET . Si vous avez besoin, vous devriez examiner les ensembles ordonnés .


# 4F

L'exemple que vous avez fourni ne correspond pas aux listes en Python. L'exemple que vous avez fourni ne correspond pas aux listes en Python . Il ressemble à un dict imbriqué, ce qui n'est probablement pas ce que vous vouliez. Il est similaire à un dictionnaire imbriqué et peut ne pas être ce que vous voulez.

Une liste Python: Liste Python:

a = ['a', 'b', 'c', 'd', 'b']

Pour obtenir des éléments uniques, il suffit de le transformer en un ensemble (que vous pouvez reconvertir en liste si nécessaire): Pour obtenir les éléments uniques, il suffit de les convertir en un ensemble (vous pouvez les reconvertir dans la liste si nécessaire) :

b = set(a)
print b
>>> set(['a', 'b', 'c', 'd'])

# 5F

Tout d'abord, l'exemple que vous avez donné n'est pas une liste valide. Tout d'abord , l'exemple que vous avez donné n'est pas une liste valide .

example_list = [u'nowplaying',u'PBS', u'PBS', u'nowplaying', u'job', u'debate',u'thenandnow']

Supposons que si ci-dessus est la liste d'exemples. Supposons si ci-dessus est la liste d'exemples . Ensuite, vous pouvez utiliser la recette suivante pour donner l'exemple de document itertools qui peut renvoyer les valeurs uniques et conserver l'ordre comme vous semblez l'exiger. Ensuite, vous pouvez utiliser la recette suivante comme exemple de document itertools, qui peut retourner des valeurs uniques et vous garder Il semble que la commande soit nécessaire. L'itérable ici est la liste d' exemples

from itertools import ifilterfalse

def unique_everseen(iterable, key=None):
    "List unique elements, preserving order. Remember all elements ever seen."
    # unique_everseen('AAAABBBCCDAABBB') --> A B C D
    # unique_everseen('ABBCcAD', str.lower) --> A B C D
    seen = set()
    seen_add = seen.add
    if key is None:
        for element in ifilterfalse(seen.__contains__, iterable):
            seen_add(element)
            yield element
    else:
        for element in iterable:
            k = key(element)
            if k not in seen:
                seen_add(k)
                yield element

# 6 étage

  1. Au début de votre code, déclarez simplement votre liste de sortie comme vide: output=[] Au début de votre code, déclarez simplement votre liste de sortie comme vide :output=[]
  2. Au lieu de votre code , vous pouvez utiliser ce code de trends=list(set(trends)) vous pouvez utiliser ce code pour remplacer votre codetrends=list(set(trends))
Publié 0 articles originaux · loué 8 · 30 000+ vues

Je suppose que tu aimes

Origine blog.csdn.net/asdfgh0077/article/details/105531646
conseillé
Classement