Добијање н елемената листе по реду од највеће и најмање вредности у Питхон-у

Бусинесс

Ако желите да добијете н елемената листе (низа) по редоследу од највеће или најмање вредности у Питхон-у и н=1, можете користити следећу уграђену функцију.

  • max()
  • min()

Ако је н&гт;1, постоје два начина да сортирате листу или користите хеапк модул стандардне библиотеке.

  • Добијте максималну и минималну вредност:max(),min()
  • Добити н елемената по редоследу максималне и минималне вредности:врста
  • Добити н елемената по редоследу максималне и минималне вредности:heapqМодул

Ако је број елемената који се преузимају велики, ефикасније је прво их сортирати помоћу сортед() или сорт(), а ако је број мали, наргест() и нсмаллест() модула хеапк су ефикаснији.

Да бисте добили индексе максималне и минималне вредности, користите мак(), мин() и индек().

Добијте максималну и минималну вредност:max(),min()

Да бисте добили максималне и минималне елементе листе, користите уграђене функције мак() и мин().

l = [3, 6, 7, -1, 23, -10, 18]

print(max(l))
# 23

print(min(l))
# -10

Добијте н елемената по редоследу максималне и минималне вредности: Сортирај

Ако желите да добијете н елемената листе по редоследу од највеће или најмање вредности, први метод је сортирање (сортирање) листе.

Да бисте сортирали листу, користите уграђену функцију сортед() или сорт() метод листе. сортед() враћа нову сортирану листу, док сорт() мења редослед оригиналне листе.

Променом растућег/опадајућег редоследа са аргументом обрнутим и избором било ког броја пресека од врха, можете добити н елемената по реду од највеће/мање вредности листе.

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]

Ако вам не смета да промените редослед оригиналне листе, можете користити методу сорт().

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]

Добити н елемената по редоследу максималне и минималне вредности: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]

Као што сам написао на почетку, ако је број елемената који се преузимају велики, ефикасније је прво их сортирати помоћу сортед() или сорт(), а ако је број мали, наргест() и нсмаллест() од хеапк модул је ефикаснији.