به‌دست آوردن n عنصر فهرست از بزرگ‌ترین و کوچک‌ترین مقادیر در پایتون

کسب و کار

اگر می خواهید n عنصر یک لیست (آرایه) را به ترتیب از بزرگترین یا کوچکترین مقدار در پایتون و 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 عنصر را به ترتیب از مقدار بزرگ‌ترین/فرعی فهرست دریافت کنید.

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 کارآمدتر هستند.

Copied title and URL