sorted , list.sort()
Ces deux fonctions sont intégrées à Python qui trient la liste. S'il s'agit d'un tableau unidimensionnel, vous n'avez pas à y penser trop, mais c'est ennuyeux lorsqu'il s'agit de commandes multiples. Alors, voici l'explication en tant que méthode quand c'est multi-ordre
sorted
a = [
[1,7,'z'],
[3,2,'x'],
[1,8,'r'],
[2,2,'s'],
[1,9,'b'],
[2,2,'a']
]
print sorted(a, key=lambda x:x[2])
Si vous écrivez ceci key = lambda x: x [2]
, la liste sera triée par index = 2, ici par caractère.
Cependant, je n'étais pas sûr que le passage de cette fonction lambda fonctionnerait.
Apparemment, j'étais toujours coincé dans une langue qui ne pouvait pas renommer les fonctions à l'ancienne.
example
def f1(data,function):
p = []
for i in data:
p.append(function(i))
return p
def f2(num):
return num/2.
a = f1 #Variable a qui signifie fonction f1
b = f2 #Variable b signifiant la fonction f2
print f1(3,f2) #Avec ce résultat
print a(3,b) #Ce résultat est le même
Donc, dans trié, la clé n'a pas été spécifiée pour comparer le deuxième élément, Cela signifie qu'une fonction qui renvoie les éléments à comparer a été spécifiée.
sorted
sort(a,key=str.lower)
sort(a,key=lambda x:x[2])
# for i in a:
# key(i) =>Facteur de comparaison
Cela signifie que vous pouvez même ajouter vos propres fonctions élaborées.
function_x
def function_x(something):
'''
Quelque chose qui renvoie des résultats très élaborés et inattendus
'''
return result
a = [
[1,7,'z'],
[3,2,'x'],
[1,8,'r'],
[2,2,'s'],
[1,9,'b'],
[2,2,'a']
]
print sorted(a,key=function_x)
Par exemple, si vous créez une fonction qui renvoie le classement mondial du football lorsque vous lancez un nom de pays et le triez, Vous pouvez trier par nom de pays dans l'ordre de classement du football. (Pas de demande) Cela peut être utile et inopinément utile.
Recommended Posts