Jos haluat saada luettelon (array) n elementtiä järjestyksessä suurimmasta tai pienimmästä arvosta Pythonissa ja n=1, voit käyttää seuraavaa sisäänrakennettua funktiota.
max()
min()
Jos n>1, on kaksi tapaa lajitella lista tai käyttää standardikirjaston heapq-moduulia.
- Hae maksimi- ja minimiarvot:
max()
,min()
- Hae n elementtiä suurimman ja pienimmän arvon mukaisessa järjestyksessä.:lajittele
- Hae n elementtiä suurimman ja pienimmän arvon mukaisessa järjestyksessä.:
heapq
Moduuli
Jos haettavien elementtien määrä on suuri, on tehokkaampaa lajitella ne ensin sorted()- tai sort()-ohjelmalla, ja jos määrä on pieni, heapq-moduulin nargest()- ja nsmallest()-ohjelmat ovat tehokkaampia.
Saat maksimi- ja minimiarvojen indeksit käyttämällä max(), min() ja index().
Hae maksimi- ja minimiarvot: max(), min()
Saat listan suurimman ja pienimmän elementin käyttämällä sisäänrakennettuja funktioita max() ja min().
l = [3, 6, 7, -1, 23, -10, 18]
print(max(l))
# 23
print(min(l))
# -10
Hae n elementtiä suurimman ja pienimmän arvon mukaisessa järjestyksessä: Lajittele
Jos haluat saada listan n elementtiä järjestykseen suurimmasta tai pienimmästä arvosta, ensimmäinen tapa on lajitella (lajitella) lista.
Voit lajitella listan käyttämällä sisäänrakennettua funktiota sorted() tai listan sort()-metodia. sorted() palauttaa uuden lajitellun listan, kun taas sort() järjestää alkuperäisen listan uudelleen.
Vaihtamalla nousevaa\laskevaa järjestystä argumentilla reverse ja valitsemalla minkä tahansa määrän viipaleita ylhäältä, saat n elementtiä järjestyksessä listan suurimmasta\ pienimmästä arvosta alkaen.
- Aiheeseen liittyvät artikkelit:Listan lajittelu Pythonissa: ero lajitellun ja lajitellun välillä
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]
Voit kirjoittaa ne kaikki yhdelle riville.
print(sorted(l, reverse=True)[:3])
# [23, 18, 7]
print(sorted(l)[:3])
# [-10, -1, 3]
Jos alkuperäisen listan järjestyksen muuttaminen ei haittaa, voit käyttää sort()-metodia.
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]
Hae n elementtiä suurimman ja pienimmän arvon mukaisessa järjestyksessä.: heapqModuuli
Jos haluat saada listan n elementtiä suurimman tai pienimmän arvon mukaisessa järjestyksessä, voit käyttää heapq-moduulia.
Käytä seuraavaa funktiota heapq-moduulissa. Tässä tapauksessa alkuperäistä luetteloa ei muuteta.
nlargest()
nsmallest()
Ensimmäinen argumentti on haettavien elementtien määrä ja toinen argumentti on iteroitava kohde (lista jne.).
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]
Kuten alussa kirjoitin, jos haettavien elementtien määrä on suuri, on tehokkaampaa lajitella ne ensin sorted()- tai sort()-ohjelmalla, ja jos määrä on pieni, heapq-moduulin nargest()- ja nsmallest()-ohjelmat ovat tehokkaampia.