Python: le caractère unique de la liste des listes
Je suis curieux de savoir ce que serait une effient façon de uniquefying ces objets de données:
testdata =[ ['9034968', 'ETH'], ['14160113', 'ETH'], ['9034968', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15724032', 'ETH'], ['15481740', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['10307528', 'ETH'], ['15481757', 'ETH'], ['15481724', 'ETH'], ['15481740', 'ETH'], ['15379365', 'ETH'], ['11111', 'NOT'], ['9555269', 'NOT'], ['15379365', 'ETH']
]
Pour chaque paire de données, gauche de la chaîne numérique, PLUS le type à droite indique le caractère unique d'un élément de données. Et elle retourne une liste de listes de même que la testdata, mais seulement uniques sont existants.
Ce qui concerne
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser un ensemble:
Vous pouvez également voir cette page quels critères de référence une variété de méthodes de conserver ou de ne pas maintenir l'ordre.
TypeError: unhashable type: 'list'
. Python 2.6.2, Ubuntu Jaunty.list(some_set)
mais cela signifie que vous ne pouvez pas définir ou de l'influence de l'ordre de tri en aucune façon. Pour plus d'info: stackoverflow.com/questions/12165200/...J'ai essayé @Marc réponse et ai une erreur. La conversion de la liste et chacun des éléments dans un tuple de le faire fonctionner. Vous ne savez pas si ce la meilleure façon de bien.
Bien sûr, la même chose peut être exprimée à l'aide d'une compréhension de liste à la place.
Je suis à l'aide de Python 2.6.2.
Mise à jour
@Marque a depuis modifié sa réponse. Sa réponse actuelle utilise des n-uplets et de travail. Il en sera de mine 🙂
Mise à jour 2
Grâce à @Mark. J'ai changé ma réponse à retourner une liste de listes, plutôt qu'une liste de tuples.
lambda x: foo(x)
vous pouvez simplement écrirefoo
.foo
est un appelable. Gotcha.Étendre un peu sur @Mark Byers solution, vous pouvez aussi faire une liste de compréhension et de transtypage pour obtenir ce dont vous avez besoin:
Aussi, si vous n'aimez pas les interprétations de la liste que beaucoup trouvent leur source de confusion, vous pouvez faire la même chose dans une boucle for:
si vous avez une liste d'objets que vous pouvez modifier @Mark Byers réponse à:
où testdata est une liste d'objets qui dispose d'une liste testList comme attribut.