Ef þú vilt fá n þætti lista (fylki) í röð frá stærsta eða minnsta gildinu í Python, og n=1, geturðu notað eftirfarandi innbyggða fall.
max()
min()
Ef n>1 eru tvær leiðir til að raða listanum eða nota heapq einingu staðlaða bókasafnsins.
- Fáðu hámarks- og lágmarksgildi:
max()
,min()
- Fáðu n þætti í röð eftir hámarks- og lágmarksgildi:flokka
- Fáðu n þætti í röð eftir hámarks- og lágmarksgildi:
heapq
Eining
Ef fjöldi þátta sem á að sækja er mikill er skilvirkara að raða þeim fyrst með sorted() eða sort(), og ef talan er lítil eru nargest() og nsmallest() í heapq einingunni skilvirkari.
Til að fá vísitölur fyrir hámarks- og lágmarksgildi, notaðu max(), min() og index().
Fáðu hámarks- og lágmarksgildi:max(),min()
Til að fá hámarks- og lágmarksþætti listans, notaðu innbyggðu föllin max() og min().
l = [3, 6, 7, -1, 23, -10, 18]
print(max(l))
# 23
print(min(l))
# -10
Fáðu n þætti í röð eftir hámarks- og lágmarksgildi: Raða
Ef þú vilt fá n þætti lista í röð frá stærsta eða minnsta gildinu er fyrsta aðferðin að raða (raða) listanum.
Til að flokka listann, notaðu innbyggðu fallið sorted() eða sort() aðferðina á listanum. sorted() skilar nýjum flokkuðum lista, en sort() endurraðar upprunalega listann.
Með því að skipta um hækkandi/lækkandi röð með rifrildinu andstæða og velja hvaða fjölda sneiða sem er að ofan geturðu fengið n þætti í röð frá stærsta/minni gildi listans.
- tengdar greinar:Að raða lista í Python: munurinn á milli raðað og raðað
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]
Þú getur skrifað þær allar í einni línu.
print(sorted(l, reverse=True)[:3])
# [23, 18, 7]
print(sorted(l)[:3])
# [-10, -1, 3]
Ef þér er sama um að breyta röð upprunalega listans geturðu notað sort() aðferðina.
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]
Fáðu n þætti í röð eftir hámarks- og lágmarksgildi:heapqEining
Ef þú vilt fá n þætti lista í röð frá stærsta eða minnsta gildinu geturðu notað heapq eininguna.
Notaðu eftirfarandi aðgerð í heapq einingunni. Í þessu tilviki verður upprunalega listanum ekki breytt.
nlargest()
nsmallest()
Fyrsta röksemdin er fjöldi þátta sem á að sækja og seinni röksemdin er endurtekningin (listi osfrv.) sem á að miða á.
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]
Eins og ég skrifaði í upphafi, ef fjöldi þátta sem á að sækja er mikill, er skilvirkara að raða þeim fyrst með sorted() eða sort(), og ef talan er lítil, nargest() og nminst() af heapq einingin er skilvirkari.