J'essaie de trier la liste de dictionnaires suivante en fonction de la somme des valeurs du dictionnaire interne (a + b + C)
d2=[{'id': 255, 's': {'a': 50, 'b': 60, 'c': 0}},
{'id': 257, 's': {'a': 100, 'b': 10, 'c': 0}},
{'id': 285, 's': {'a': 20, 'b': 10, 'c': 0}}]
3 réponses
Voici la solution,
sorted(d2, key=lambda x:x['s']['a']+x['s']['b']+x['s']['c'])
Pour trier sur place, utilisez le list.sort
et utilisez la clé de dictionnaire requise clé.
Ex:
d2.sort(key=lambda item:sum(item['s'].values()))
Essaye ça:
d2 = sorted(d2, key=lambda x: sum(x['s'].values()))
Questions connexes
De nouvelles questions
python
Python est un langage de programmation multi-paradigme, typé dynamiquement et polyvalent. Il est conçu pour être rapide à apprendre, comprendre, utiliser et appliquer une syntaxe propre et uniforme. Veuillez noter que Python 2 est officiellement hors support à partir du 01-01-2020. Néanmoins, pour les questions Python spécifiques à la version, ajoutez la balise [python-2.7] ou [python-3.x]. Lorsque vous utilisez une variante Python (par exemple, Jython, PyPy) ou une bibliothèque (par exemple, Pandas et NumPy), veuillez l'inclure dans les balises.