J'ai lu et essayé d'implémenter des suggestions de Stack Overflow.Tri d'une liste de tuples par le compteur Python
En Python 3.6+ J'ai une liste de tuples qui ressemble à ceci:
tuple_list=[(a=3,b=gt,c=434),(a=4,b=lodf,c=We),(a=3,b=gt,c=434)]
créé par
for row in result:
tuple_list.append(var_tuple(row['d'], row['f'], row['q']))
Je veux compter le nombre de doublons dans la liste et puis trier la liste de sorte que le nombre avec les doublons les plus élevés est en haut de sorte que j'ai utilisé
tuple_counter = collections.Counter(tuple(sorted(tup)) for tup in tuple_list)
Mais e est en erreur, car les retours
TypeError: unorderable types: int() < str()
J'ai aussi essayé cela, mais il ne semble pas trier par le plus haut comptoir.
tuple_counter = collections.Counter(tuple_list)
tuple_counter = sorted(tuple_counter, key=lambda x: x[1])
Outre cette
tuple_counter = collections.Counter(tuple_list)
tuple_counter = tuple_counter.most_common()
est-il une meilleure façon de le faire?
Vous avez une erreur de syntaxe à la ligne 1, je n'ai pas voté vers le bas, mais vous devriez montrer un 'tuple_list' valide, nous pouvons utiliser –
Attendez, pourquoi' tuple_counter.most_common() 'ne fonctionne pas? –
@JaredGoguen parce que 'trié (tup)' échoue * façon * avant même d'avoir un 'tuple_counter'. Vois ma réponse. – HyperNeutrino