Калі вы хочаце атрымаць n элементаў спісу (масіў) у парадку, пачынаючы з найбольшага або найменшага значэння ў Python, і n=1, вы можаце выкарыстоўваць наступную ўбудаваную функцыю.
max()
min()
Калі n>1, ёсць два спосабы сартаваць спіс або выкарыстоўваць модуль heapq стандартнай бібліятэкі.
- Атрымаць максімальнае і мінімальнае значэння:
max()
,min()
- Атрымаць n элементаў у парадку максімальнага і мінімальнага значэння:сартаваць
- Атрымаць n элементаў у парадку максімальнага і мінімальнага значэння:
heapq
Модуль
Калі колькасць элементаў, якія трэба атрымаць, вялікая, больш эфектыўна спачатку адсартаваць іх, выкарыстоўваючы sorted() або sort(), а калі колькасць невялікая, nargest() і nsmallest() модуля heapq больш эфектыўныя.
Каб атрымаць індэксы максімальнага і мінімальнага значэнняў, выкарыстоўвайце max(), min() і index().
Атрымаць максімальнае і мінімальнае значэння:max(),min()
Каб атрымаць максімальныя і мінімальныя элементы спісу, выкарыстоўвайце ўбудаваныя функцыі max() і min().
l = [3, 6, 7, -1, 23, -10, 18]
print(max(l))
# 23
print(min(l))
# -10
Атрымаць n элементаў у парадку максімальнага і мінімальнага значэння: Сартаваць
Калі вы хочаце атрымаць n элементаў спісу ў парадку, пачынаючы з найбольшага або найменшага значэння, першы метад – сартаваць (сартаваць) спіс.
Каб адсартаваць спіс, выкарыстоўвайце ўбудаваную функцыю sorted() або метад sort() спісу. sorted() вяртае новы адсартаваны спіс, у той час як sort() змяняе парадак першапачатковага спісу.
Пераключыўшы парадак па ўзрастанні/змяншэнні з аргументам адваротным і выбраўшы любую колькасць кавалачкаў зверху, вы можаце атрымаць n элементаў у парадку ад найбольшага/мінорнага значэння спісу.
- Падобныя артыкулы:Сартаванне спісу ў Python: розніца паміж адсартаваным і адсартаваным
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]
Вы можаце напісаць іх усё ў адзін радок.
print(sorted(l, reverse=True)[:3])
# [23, 18, 7]
print(sorted(l)[:3])
# [-10, -1, 3]
Калі вы не супраць змяніць парадак першапачатковага спісу, вы можаце выкарыстоўваць метад sort().
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]
Атрымаць n элементаў у парадку максімальнага і мінімальнага значэння:heapqМодуль
Калі вы хочаце атрымаць n элементаў спісу ў парадку ад найбольшага ці найменшага значэння, вы можаце выкарыстоўваць модуль heapq.
Выкарыстоўвайце наступную функцыю ў модулі heapq. У гэтым выпадку першапачатковы спіс не будзе зменены.
nlargest()
nsmallest()
Першы аргумент – гэта колькасць элементаў, якія трэба атрымаць, а другі аргумент – гэта ітэрабельны (спіс і г.д.), на які трэба арыентавацца.
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]
Як я пісаў у пачатку, калі колькасць элементаў, якія трэба атрымаць, вялікая, больш эфектыўна спачатку адсартаваць іх з дапамогай sorted() або sort(), а калі колькасць невялікая, nargest() і nsmallest() з модуль heapq больш эфектыўны.