Egy lista n elemének sorrendbe állítása a legnagyobb és a legkisebb értékek alapján Pythonban

Üzleti

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:heapqModul

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.

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.

Copied title and URL