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}}]
0
Ashish siwalkar 17 avril 2018 à 13:40

3 réponses

Meilleure réponse

Voici la solution,

sorted(d2, key=lambda x:x['s']['a']+x['s']['b']+x['s']['c'])
2
Amar Kamthe 17 avril 2018 à 10:44

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()))
1
Rakesh 17 avril 2018 à 10:46

Essaye ça:

d2 = sorted(d2, key=lambda x: sum(x['s'].values()))
1
Seer.The 17 avril 2018 à 12:47