
In Python können Sie mit den integrierten Funktionen max() und min() die maximalen und minimalen Elemente aus einer Liste abrufen. Wenn Sie die n-größten/kleinsten Elemente erhalten möchten, können Sie die Liste sortieren oder das heapq-Modul der Standardbibliothek verwenden.
- Holen Sie sich die maximalen und minimalen Elemente:
max(), min()
- Holen Sie sich die n-größten/kleinsten Elemente:
sorted(), sort()
- Holen Sie sich die n-größten/kleinsten Elemente: Das heapq-Modul
Wenn die Anzahl der zu erhaltenden Elemente groß ist, ist es effizienter, zuerst mit sorted() oder sort() zu sortieren, während nlargest() oder nsmallest() im heapq-Modul effizienter ist, wenn die Anzahl klein ist.
Holen Sie sich die maximalen und minimalen Elemente:max(), min()
Verwenden Sie die integrierten Funktionen max() und min(), um die maximalen und minimalen Elemente aus der Liste abzurufen.
l = [3, 6, 7, -1, 23, -10, 18]
print(max(l))
# 23
print(min(l))
# -10
Holen Sie sich die n-größten/kleinsten Elemente:sorted(), sort()
Sie können die n-größten/kleinsten Elemente erhalten, indem Sie die Liste sortieren.
Verwenden Sie die eingebaute sorted()-Funktion oder die sort()-Methode einer Liste. sorted() gibt eine neu sortierte Liste zurück und sort() sortiert die ursprüngliche Liste selbst.
Indem Sie die aufsteigende/absteigende Reihenfolge mit dem Reverse-Parameter umschalten und eine beliebige Anzahl von Elementen durch Slicen auswählen, können Sie die n-größten/kleinsten Elemente erhalten.
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]
Sie können auf eine Zeile schreiben.
print(sorted(l, reverse=True)[:3])
# [23, 18, 7]
print(sorted(l)[:3])
# [-10, -1, 3]
Sie können die Methode sort() verwenden, wenn es keine Rolle spielt, ob sich die Reihenfolge der ursprünglichen Liste ändert.
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]
Holen Sie sich die n-größten/kleinsten Elemente: Das heapq-Modul
Sie können auch das heapq-Modul verwenden, um die n-größten/kleinsten Elemente aus einer Liste zu erhalten.
Verwenden Sie die Funktionen nlargest() und nsmallest() des Moduls heapq. In diesem Fall wird die ursprüngliche Liste nicht geändert.
Das erste Argument ist die Anzahl der zurückzugebenden Elemente und das zweite ist das iterierbare Ziel (z. B. Liste).
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]
Wenn die Anzahl der zu erhaltenden Elemente groß ist, ist es effizienter, zuerst mit sorted() oder sort() zu sortieren, während nlargest() oder nsmallest() im heapq-Modul effizienter ist, wenn die Anzahl klein ist.