التابع list.sort()
في بايثون
يعمل هذا التابع على فرز القائمة في مكانها وذلك بإجراء مقارنة بين عناصر القائمة بواسطة العامل <
فقط.
البنية العامة
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()
: إنشاء نسخة سطحية من القائمة.