Python-da ən böyük və ən kiçik qiymətlərdən siyahının n elementinin sıra ilə alınması

Biznes

Əgər siyahının (massiv) n elementini Python-da ən böyük və ya ən kiçik dəyərdən sıra ilə almaq istəyirsinizsə və n=1, aşağıdakı daxili funksiyadan istifadə edə bilərsiniz.

  • max()
  • min()

Əgər n>1 olarsa, siyahını çeşidləmək və ya standart kitabxananın heapq modulundan istifadə etmək üçün iki yol var.

  • Maksimum və minimum dəyərləri əldə edin:max(),min()
  • Maksimum və minimum qiymət sırasına görə n element alın:növ
  • Maksimum və minimum qiymət sırasına görə n element alın:heapqModul

Əgər götürüləcək elementlərin sayı çox olarsa, onları əvvəlcə sorted() və ya sort() istifadə edərək çeşidləmək daha səmərəlidir və ədəd kiçikdirsə, heapq modulunun nargest() və nssmallest() funksiyaları daha effektivdir.

Maksimum və minimum dəyərlərin indekslərini əldə etmək üçün max(), min() və index() funksiyalarından istifadə edin.

Maksimum və minimum dəyərləri əldə edin:max(),min()

Siyahının maksimum və minimum elementlərini əldə etmək üçün max() və min() daxili funksiyalarından istifadə edin.

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

print(max(l))
# 23

print(min(l))
# -10

Maksimum və minimum dəyər sırası ilə n element alın: Sort

Siyahının n elementini ən böyük və ya ən kiçik dəyərdən sıra ilə almaq istəyirsinizsə, birinci üsul siyahını çeşidləmək (çeşidləmək) olacaq.

Siyahını çeşidləmək üçün daxili funksiyadan sorted() və ya siyahının sort() metodundan istifadə edin. sorted() yeni çeşidlənmiş siyahını qaytarır, sort() isə orijinal siyahını yenidən sıralayır.

Arqumentin tərsi ilə artan/azalan sıraya keçmək və yuxarıdan istənilən sayda dilim seçməklə, siyahının ən böyük/kiçik dəyərindən sıra ilə n element əldə edə bilərsiniz.

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]

Hamısını bir sətirdə yaza bilərsiniz.

print(sorted(l, reverse=True)[:3])
# [23, 18, 7]

print(sorted(l)[:3])
# [-10, -1, 3]

Əgər orijinal siyahının sırasını dəyişməkdən çəkinmirsinizsə, sort() metodundan istifadə edə bilərsiniz.

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]

Maksimum və minimum qiymət sırasına görə n element alın:heapqModul

Əgər siyahının n elementini ən böyük və ya ən kiçik qiymətdən sıra ilə almaq istəyirsinizsə, heapq modulundan istifadə edə bilərsiniz.

Heapq modulunda aşağıdakı funksiyadan istifadə edin. Bu halda, orijinal siyahı dəyişdirilməyəcək.

  • nlargest()
  • nsmallest()

Birinci arqument götürüləcək elementlərin sayıdır, ikinci arqument isə hədəf alınacaq iterativdir (siyahı və s.).

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]

Başlanğıcda yazdığım kimi, əgər götürüləcək elementlərin sayı çox olarsa, onları əvvəlcə sorted() və ya sort() ilə çeşidləmək daha səmərəlidir, əgər ədəd kiçikdirsə, nargest() və nssmallest() heapq modulu daha səmərəlidir.

Copied title and URL