Si voleu obtenir els n elements d’una llista (matriu) en ordre a partir del valor més gran o més petit de Python, i n=1, podeu utilitzar la següent funció integrada.
max()
min()
Si n>1, hi ha dues maneres d’ordenar la llista o utilitzar el mòdul heapq de la biblioteca estàndard.
- Obteniu els valors màxim i mínim:
max()
,min()
- Obteniu n elements per ordre de valor màxim i mínim:ordenar
- Obteniu n elements per ordre de valor màxim i mínim:
heapq
Mòdul
Si el nombre d’elements que cal recuperar és gran, és més eficient ordenar-los primer utilitzant sortd() o sort(), i si el nombre és petit, nargest() i nsmallest() del mòdul heapq són més eficients.
Per obtenir els índexs dels valors màxim i mínim, utilitzeu max(), min() i index().
Obteniu els valors màxim i mínim:max(),min()
Per obtenir els elements màxims i mínims de la llista, utilitzeu les funcions integrades max() i min().
l = [3, 6, 7, -1, 23, -10, 18]
print(max(l))
# 23
print(min(l))
# -10
Obteniu n elements per ordre de valor màxim i mínim: Ordena
Si voleu obtenir els n elements d’una llista ordenats a partir del valor més gran o més petit, el primer mètode és ordenar (ordenar) la llista.
Per ordenar la llista, utilitzeu la funció integrada sortd() o el mètode sort() de la llista. sortd() retorna una nova llista ordenada, mentre que sort() reordena la llista original.
Si canvieu l’ordre ascendent/descendent amb l’argument invers i seleccioneu qualsevol nombre de llesques de la part superior, podeu obtenir n elements en ordre del valor més gran/menor de la llista.
- Articles relacionats:Ordenar una llista en Python: la diferència entre ordenada i ordenada
ld = sorted(l, reverse=True)
print(ld)
# [23, 18, 7, 6, 3, -1, -10]
print(ld[:3])
# [23, 18, 7]
la = sorted(l)
print(la)
# [-10, -1, 3, 6, 7, 18, 23]
print(la[:3])
# [-10, -1, 3]
Podeu escriure-les totes en una línia.
print(sorted(l, reverse=True)[:3])
# [23, 18, 7]
print(sorted(l)[:3])
# [-10, -1, 3]
Si no us importa canviar l’ordre de la llista original, podeu utilitzar el mètode sort().
print(l)
# [3, 6, 7, -1, 23, -10, 18]
l.sort(reverse=True)
print(l[:3])
# [23, 18, 7]
print(l)
# [23, 18, 7, 6, 3, -1, -10]
l.sort()
print(l[:3])
# [-10, -1, 3]
print(l)
# [-10, -1, 3, 6, 7, 18, 23]
Obteniu n elements per ordre de valor màxim i mínim:heapqMòdul
Si voleu obtenir els n elements d’una llista ordenats a partir del valor més gran o més petit, podeu utilitzar el mòdul heapq.
Utilitzeu la funció següent al mòdul heapq. En aquest cas, la llista original no es canviarà.
nlargest()
nsmallest()
El primer argument és el nombre d’elements que s’han de recuperar, i el segon argument és l’iterable (llista, etc.) que s’ha d’orientar.
import heapq
l = [3, 6, 7, -1, 23, -10, 18]
print(heapq.nlargest(3, l))
# [23, 18, 7]
print(heapq.nsmallest(3, l))
# [-10, -1, 3]
print(l)
# [3, 6, 7, -1, 23, -10, 18]
Com vaig escriure al principi, si el nombre d’elements a recuperar és gran, és més eficient ordenar-los primer amb sorted() o sort(), i si el nombre és petit, nargest() i nsmallest() de el mòdul heapq és més eficient.