Tri d'une liste de listes en Python
c2=[]
row1=[1,22,53]
row2=[14,25,46]
row3=[7,8,9]
c2.append(row2)
c2.append(row1)
c2.append(row3)
c2
est maintenant:
[[14, 25, 46], [1, 22, 53], [7, 8, 9]]
comment puis-je trier c2
d'une manière telle que par exemple:
for row in c2:
sort on row[2]
le résultat serait:
[[7,8,9],[14,25,46],[1,22,53]]
l'autre question est de savoir comment dois-je d'abord trier par ligne[2] et, dans ce jeu en ligne[1]
source d'informationauteur l--''''''---------''''''''''''
Vous devez vous connecter pour publier un commentaire.
Le
argument
sort
spécifie une fonction à un argument qui est utilisé pour extraire une comparaison clé de chaque élément de la liste. Nous pouvons donc créer une simplelambda
qui renvoie le dernier élément de chaque ligne pour être utilisé dans le tri:Un
lambda
est une simple fonction anonyme. C'est pratique lorsque vous souhaitez créer une simple utilisation de la fonction comme ceci. Le code équivalent pas à l'aide d'unlambda
serait:Si vous souhaitez trier sur plusieurs entrées, il suffit de faire le
key
fonction retourne un tuple contenant les valeurs que vous souhaitez trier par ordre d'importance. Par exemple:ou:
Bien, de votre choix exemple semble indiquer que vous souhaitez trier par le dernier indice dans la liste, ce qui pourrait être fait avec cette: