الحصول على العناصر n من القائمة بالترتيب من أكبر وأصغر القيم في Python

اعمال

إذا كنت ترغب في الحصول على العناصر n لقائمة (مصفوفة) بالترتيب من أكبر أو أصغر قيمة في Python ، و n = 1 ، يمكنك استخدام الوظيفة المضمنة التالية.

  • max()
  • min()

إذا كانت n & gt؛ 1 ، فهناك طريقتان لفرز القائمة أو استخدام الوحدة النمطية heapq للمكتبة القياسية.

  • احصل على القيم القصوى والدنيا:max()وmin()
  • احصل على عناصر n بالترتيب من الحد الأقصى والحد الأدنى للقيمة:فرز
  • احصل على عناصر n بالترتيب من الحد الأقصى والحد الأدنى للقيمة:heapqوحدة

إذا كان عدد العناصر المراد استردادها كبيرًا ، فمن الأفضل فرزها أولاً باستخدام Sorted () أو Sort () ، وإذا كان الرقم صغيرًا ، فإن أصغر () و 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 () بإعادة ترتيب القائمة الأصلية.

من خلال التبديل بترتيب تصاعدي / تنازلي مع عكس الوسيطة واختيار أي عدد من الشرائح من الأعلى ، يمكنك الحصول على عناصر 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]

إذا كنت لا تمانع في تغيير ترتيب القائمة الأصلية ، يمكنك استخدام طريقة الفرز ().

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]

كما كتبت في البداية ، إذا كان عدد العناصر المراد استرجاعها كبيرًا ، فمن الأفضل فرزها أولاً بالفرز () أو الفرز () ، وإذا كان الرقم صغيرًا ، فأقل () وأصغر () من وحدة heapq أكثر كفاءة.