
In Python, puoi ottenere gli elementi massimo e minimo da un elenco con le funzioni integrate max() e min(). Inoltre, se vuoi ottenere gli n-elementi più grandi/piccoli, puoi ordinare l’elenco o utilizzare il modulo heapq della libreria standard.
- Ottieni gli elementi massimo e minimo:
max(), min()
- Ottieni gli n-elementi più grandi/piccoli:
sorted(), sort()
- Ottieni gli n-elementi più grandi/piccoli: il modulo heapq
Se il numero di elementi da ottenere è grande, è più efficiente ordinare prima con sorted() o sort(), mentre nlargest() o nsmallest() nel modulo heapq è più efficiente se il numero è piccolo.
Ottieni gli elementi massimo e minimo:max(), min()
Utilizzare le funzioni integrate max() e min() per ottenere gli elementi massimo e minimo dall’elenco.
l = [3, 6, 7, -1, 23, -10, 18]
print(max(l))
# 23
print(min(l))
# -10
Ottieni gli n-elementi più grandi/piccoli:sorted(), sort()
È possibile ottenere gli elementi più grandi/piccoli ordinando l’elenco.
Usa la funzione built-in sorted() o il metodo sort() di un elenco. sorted() restituisce un nuovo elenco ordinato e sort() ordina l’elenco originale stesso.
Invertendo l’ordine crescente/decrescente con il parametro reverse e selezionando un numero qualsiasi di elementi mediante affettatura, è possibile ottenere gli n elementi più grandi/piccoli.
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]
Puoi scrivere su una riga.
print(sorted(l, reverse=True)[:3])
# [23, 18, 7]
print(sorted(l)[:3])
# [-10, -1, 3]
Puoi usare il metodo sort() se non importa se l’ordine dell’elenco originale cambia.
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]
Ottieni gli n-elementi più grandi/piccoli: il modulo heapq
Puoi anche usare il modulo heapq per ottenere gli n-elementi più grandi/piccoli da un elenco.
Utilizzare le funzioni nlargest() e nsmallest() del modulo heapq. In questo caso, l’elenco originale non viene modificato.
Il primo argomento è il numero di elementi da restituire e il secondo è l’iterabile di destinazione (ad esempio, list).
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]
Se il numero di elementi da ottenere è grande, è più efficiente ordinare prima con sorted() o sort(), mentre nlargest() o nsmallest() nel modulo heapq è più efficiente se il numero è piccolo.