Að koma n þáttum lista í röð frá stærstu og minnstu gildunum í Python

Viðskipti

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

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.

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.

Copied title and URL