Ha egy lista (tömb) n elemét a Pythonban a legnagyobb vagy a legkisebb értéktől sorrendben szeretnénk megkapni, és n=1, akkor a következő beépített függvényt használhatjuk.
max()
min()
Ha n>1, kétféleképpen rendezhetjük a listát, vagy használhatjuk a szabványos könyvtár heapq modulját.
- A maximális és minimális értékek lekérdezése:
max()
,min()
- Kap n elemet a maximális és a minimális érték sorrendjében:rendezés
- Kap n elemet a maximális és a minimális érték sorrendjében:
heapq
Modul
Ha a kinyerendő elemek száma nagy, akkor hatékonyabb, ha először a sorted() vagy a sort() segítségével rendezzük őket, ha pedig kicsi a számuk, akkor a heapq modul nargest() és nsmallest() funkciói hatékonyabbak.
A maximális és minimális értékek indexeinek lekérdezéséhez használja a max(), min() és index() parancsokat.
A maximális és minimális értékek lekérdezése: max(), min()
A lista maximális és minimális elemeit a beépített max() és min() függvények segítségével kaphatjuk meg.
l = [3, 6, 7, -1, 23, -10, 18]
print(max(l))
# 23
print(min(l))
# -10
Az n elemet a maximális és a minimális érték sorrendjében kapja meg: Rendezés
Ha egy lista n elemét szeretnénk a legnagyobb vagy legkisebb értéktől kezdve sorrendbe állítani, akkor az első módszer a lista rendezése (rendezése).
A lista rendezéséhez használja a beépített sorted() függvényt vagy a lista sort() metódusát. A sorted() egy új, rendezett listát ad vissza, míg a sort() az eredeti listát rendezi át.
Ha a reverse argumentummal felmenő\lemenő sorrendet váltunk, és tetszőleges számú szeletet választunk ki a tetejéről, akkor a lista legnagyobb\kisebb értékétől kezdve n elemet kaphatunk sorrendben.
- Kapcsolódó cikkek:Lista rendezése Pythonban: a különbség a rendezett és a rendezett között
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]
Az összeset egy sorba írhatja.
print(sorted(l, reverse=True)[:3])
# [23, 18, 7]
print(sorted(l)[:3])
# [-10, -1, 3]
Ha nem bánod, hogy megváltoztatod az eredeti lista sorrendjét, használhatod a sort() metódust.
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]
Kap n elemet a maximális és a minimális érték sorrendjében: heapqModul
Ha egy lista n elemét szeretnénk a legnagyobb vagy legkisebb értéktől kezdve sorrendben megkapni, használhatjuk a heapq modult.
Használja a következő függvényt a heapq modulban. Ebben az esetben az eredeti lista nem fog megváltozni.
nlargest()
nsmallest()
Az első argumentum a lekérdezendő elemek száma, a második argumentum pedig a megcélzandó iterábilis (lista stb.).
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]
Ahogy az elején írtam, ha a kinyerendő elemek száma nagy, akkor hatékonyabb, ha először sorted() vagy sort() segítségével rendezzük őket, ha pedig kicsi a számuk, akkor a heapq modul nargest() és nsmallest() funkciói hatékonyabbak.