Python میں سب سے بڑی اور چھوٹی قدروں سے فہرست کے n عناصر کو ترتیب سے حاصل کرنا

کاروبار

اگر آپ Python میں سب سے بڑی یا سب سے چھوٹی قدر اور n=1 سے فہرست کے n عناصر حاصل کرنا چاہتے ہیں تو آپ درج ذیل بلٹ ان فنکشن استعمال کر سکتے ہیں۔

  • 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