0
votes

python tuple de tuples, si une subTupple a le même premier sous-apparence comme une autre, gardez un (non pertinent que) et supprimez le reste

J'ai un format suivant TUPLE:

((624, 612), (625, 613), (626, 614), (627, 615), (628, 616), (629, 616), (630, 617))


4 commentaires

L'entrée est-elle commandée par le premier élément et vous souciez-vous de l'ordre de la sortie?


@DeepSpaceThe la liste est commandée par premier élément et je ne me soucie pas de l'ordre de la liste après la manipulation


Ce n'est pas une liste mais c'est un tuple


@zamir j'ai essayé une recherche exhaustive. Ce pourrait être un tuple, tu as raison


6 Réponses :


2
votes

Ceci est une approche utilisant définir .

ex: xxx

sortie: xxx


0 commentaires

4
votes

En supposant que l'entrée est déjà commandée par le premier élément et que vous ne vous souciez pas de faire quelques importer code> S pour faire le levage lourd pour vous:

output = [next(elements) for group, elements in itertools.groupby(inp, key=itemgetter(0))]


0 commentaires

5
votes

Vous pouvez utiliser dict.items () pour garder le dernier jeu d'instance: xxx


2 commentaires

Une excellente réponse, fonctionne même si l'entrée n'est pas commandée du tout (bien qu'elle dépend totalement de la manière dont dict (ierer_of_tuples) fonctionne)


Trié est un peu superflu ...



2
votes

semble être un bon cas d'utilisation pour setingdefault () : xxx


0 commentaires

2
votes

Utilisation de SET + LISTE COMPÉTENTION

[(624, 612), (625, 613), (626, 614), (627, 615), (628, 616), (629, 616), (630, 617)]


0 commentaires

2
votes

Vous pouvez convertir vos données en dict que vous ne pouvez inclure chaque touche, paire de valeur de la dict dans une liste: xxx pré>

sortie: strong> p >

[(624, 612),
 (625, 613),
 (626, 614),
 (627, 615),
 (628, 616),
 (629, 616),
 (630, 631)]


0 commentaires