3
votes

Comment puis-je trier la liste des paires en utilisant la deuxième clé en python?

J'ai une liste de listes imbriquées:

e = [['Tina', 37.2], ['Harsh', 39], ['Harry', 37.21], ['Berry', 37.21], ['Akriti', 41]]

Comment trier par valeur numérique, alors que les noms «suivent» la «note»? Je pourrais utiliser dict, mais je pense que ça passe à côté.


0 commentaires

3 Réponses :


1
votes
e.sort(key=lambda item: item[1])

0 commentaires

2
votes

Vous pouvez trier la liste avec une clé personnalisée:

result = sorted(e, key = lambda x : x[1])


0 commentaires

0
votes

Dans votre exemple, Harry et Berry ont la même valeur.

Si vous voulez que les liens soient triés par nom, une variante des réponses que vous avez déjà obtenues serait quelque chose comme ceci:

e = [['Tina', 37.2], ['Harsh', 39], ['Harry', 37.21], ['Berry', 37.21], ['Akriti', 41]]

e.sort(key=lambda x:(x[1], x[0]))

print(e)
#[['Tina', 37.2], ['Berry', 37.21], ['Harry', 37.21], ['Harsh', 39], ['Akriti', 41]]


2 commentaires

Pourquoi pas simplement le plus simple lambda x: (x [1], x [0]) ?


Seulement parce que je n'y ai pas pensé :) Va éditer. Merci.