Bonjour,
Je souhaiterais trier mon dictionnaire de tuples en fonction du premier élément du tuple qui est un entier (du plus petit au plus grand). Je n'arrive pas à trouver la "key" pour la fonction sorted.
Pourriez vous m'aider ?
Merci d'avance.
Version imprimable
Bonjour,
Je souhaiterais trier mon dictionnaire de tuples en fonction du premier élément du tuple qui est un entier (du plus petit au plus grand). Je n'arrive pas à trouver la "key" pour la fonction sorted.
Pourriez vous m'aider ?
Merci d'avance.
Salut,
Est-ce que ceci répond à ta question:
On peut trier un dico sur les clés ou sur les valeurs aisément. Le tri sur les tuples s'effectue d'abord sur la première valeur, puis sur la séconde.Code:
1
2
3
4
5
6
7 # Un dico contenant des tuples: d = {0: (2, 1), 1: (1, 2), 2: (7, 8), 3: (2, 2), 4: (2, 0), 5: (2, 3)} sorted(d.keys()) #[0, 1, 2, 3, 4, 5] sorted(d.values()) #[(1, 2), (2, 0), (2, 1), (2, 2), (2, 3), (7, 8)]
Ju
Salut merci pour ta réponse.
Oui effectivement ça règle le problème. J'ai trouvé une autre solution (peut être plus compliquée :lol: )
Code:
1
2
3 sorted_data = sorted(data.iteritems(), key=lambda x : x[1][0]) for a,b in sorted_data: ...
Oui, effectivement c'est une autre solution.
Plus complète et paramétrable, tu peux définir toi même une fonction sur laquelle trier (lambda ou def). Ci-dessous un exemple issu du blog sametmax:
CiaoCode:
1
2
3
4
5 def carre(val): # on va ordonner par valeur de carré return val**2 sorted([-1, -2, 0, 3], key=carre) #[0, -1, -2, 3]
Ju