التابع list.sort()‎ في بايثون

من موسوعة حسوب
< Python‏ | list
اذهب إلى التنقل اذهب إلى البحث

يعمل هذا التابع على فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل ‎<‎ فقط.

البنية العامة

sort(*, key=None, reverse=False)

المعاملات

يأخذ هذا التابع معاملين اثنين ويمكن تمريرهما بواسطة الكلمة المفتاحية (معاملات مفتاحية فقط):

key

يحدد هذا المعامل دالة ذات وسيط واحد يجري تطبيقها على كل عنصر في القائمة قبل عقد المقارنة فيما بينها (مثل: key=str.lower). يأخذ هذا المعامل القيمة الافتراضية None والتي تعني أن عناصر القائمة ستُفرز على نحو مباشر دون حساب قيمة خاصة بالمفتاح.

ملاحظة: يمكن استخدام الأداة functools.cmp_to_key()‎ لتحويل الدالة cmp في الإصدارات ‎2.x‎ إلى دالة مفتاحية.

reverse

يأخذ المعامل reverse قيمة منطقية (Boolean)، فإن كانت True يجري فرز عناصر القائمة كما لو أنّ كل عملية مقارنة يجريها التابع كانت معكوسة.

توضيح

لا يلغي هذا التابع الاستثناءات التي تنشأ أثناء عملية الفرز، بمعنى أنّه في حال حدوث أيّ خطأ عند إجراء عملية المقارنة، ستتوقّف عملية الفرز برمّتها (وقد لا تطرأ التعديلات على بعض أجزاء القائمة).

تعدّل هذه الدالة التسلسل في مكانه وذلك للاقتصاد في الموارد عند إجراء عملية الفرز على تسلسل كبير. ولا تعيد هذه الدالة التسلسل المفروز (استخدم الدالة sorted()‎ للحصول على نسخة جديدة من القائمة المفروزة).

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

أمثلة

يوضّح المثال التالي النتائج المعادة من استخدام الدالة sort()‎ على أنواع مختلفة من القوائم:

>>> a = [5, 2, 3, 1, 4]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5]
>>> a.sort(reverse = True)
>>> a
[5, 4, 3, 2, 1]
>>> b = ["A", "b", "c", "D"]
>>> b.sort()
>>> b
['A', 'D', 'b', 'c']
>>> b.sort(key = str.lower)
>>> b
['A', 'b', 'c', 'D']
>>> b.sort(reverse = True, key = str.lower)
>>> b
['D', 'c', 'b', 'A']

انظر أيضًا

  • القوائم في بايثون.
  • التابع list.append()‎: إضافة عنصر إلى نهاية القائمة.
  • التابع list.extend()‎: إضافة مجموعة من العناصر إلى نهاية القائمة.
  • التابع list.insert()‎: إضافة عنصر إلى القائمة في الموقع الذي يحدّده المستخدم.
  • التابع list.remove()‎: حذف أول عنصر في القائمة تساوي قيمته القيمة التي يحدّدها المستخدم.
  • التابع list.pop()‎: حذف العنصر في الموقع المحدّد من قبل المستخدم.
  • التابع list.clear()‎: حذف جميع عناصر القائمة.
  • التابع list.index()‎: تحديد موقع العنصر ضمن القائمة.
  • التابع list.count()‎: تحديد عدد مرات تكرار العنصر الذي يحدّده المستخدم في القائمة.
  • التابع list.reverse()‎: قلب ترتيب عناصر القائمة في مكانها.
  • التابع list.copy()‎: إنشاء نسخة سطحية من القائمة.

مصادر