فرز البيانات بكفاءة
جزء من قسم Logic & Flow في رحلة Python على Coddy. الدرس 48 من 78.
يُعدّ Sorting عملية أساسية في علوم الحاسوب، وتوفر Python أدوات مدمجة قوية لترتيب data بكفاءة. والدالة الأساسية لإجراء Sorting هي sorted()، التي يمكن استخدامها لترتيب أنواع مختلفة من data، بما في ذلك numbers والسلاسل النصية والكائنات الأكثر تعقيدًا.
الفرز الأساسي:
تأخذ الدالة sorted() كائنًا قابلًا للتكرار (مثل قائمة أو صف أو مجموعة) كوسيط لها، وتُرجع قائمة جديدة تحتوي على العناصر المرتبة. وبشكل افتراضي، تقوم بالفرز بترتيب ascending.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# المخرجات: [1, 1, 2, 3, 4, 5, 6, 9]في هذا المثال، ترتّب sorted() قائمة numbers بترتيب تصاعدي.
الترتيب العكسي:
للترتيب بترتيب تنازلي، يمكنك استخدام المعامل reverse وتعيينه إلى True.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# المخرجات: [9, 6, 5, 4, 3, 2, 1, 1]هنا، تقوم sorted() بترتيب قائمة numbers بترتيب descending.
فرز السلاسل النصية:
يمكن للدالة sorted() أيضًا فرز السلاسل النصية استنادًا إلى ترتيبها المعجمي (أي الترتيب الذي ستظهر به في القاموس).
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# المخرجات: ['apple', 'banana', 'cherry']في هذا المثال، تقوم sorted() بترتيب قائمة words بترتيب Alphabetical.
الفرز المخصص باستخدام دالة key:
للاحتياجات الأكثر تعقيدًا في الفرز، يمكنك استخدام المعامل key لتحديد دالة تحدد ترتيب الفرز. تُطبَّق دالة key على كل عنصر قبل الفرز، وتُستخدم القيم المُعادة للمقارنة.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# المخرجات: ['fig', 'kiwi', 'banana']في هذه الحالة، تقوم sorted() بفرز قائمة words استنادًا إلى length الخاصة بـ each كلمة، باستخدام الدالة len() باعتبارها key.
التحدي
سهلاكتب برنامجًا ينفّذ مهام Sorting التالية باستخدام الدالة sorted():
- رتّب قائمة من numbers بترتيب ascending.
- رتّب قائمة numbers نفسها بترتيب descending.
- رتّب قائمة من strings بترتيب Alphabetical.
- رتّب قائمة strings نفسها استنادًا إلى length.
جرّب بنفسك
# مدخلات البداية
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# المهمة 1: فرز الأرقام بترتيب تصاعدي
# المهمة 2: فرز الأرقام بترتيب تنازلي
# المهمة 3: فرز الكلمات أبجدياً
# المهمة 4: فرز الكلمات حسب الطول
# استبدل 'None' بالكود الخاص بك لكل مهمة
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# اطبع النتائج
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1استكشاف المتغيرات
الثوابتإسناد المتغيرات المتعددةتبديل المتغيراتالمتغيرات النائبةتقريب الأرقامتحويل القوائم4تطبيق سجل جهات الاتصال
عرض القائمةإضافة جهة اتصال7المجموعات - الجزء الثاني
العمليات الرياضية - الجزء الأولالعمليات الرياضية - الجزء الثانيمراجعة - البحث عن الكنزالمجموعات الجزئية والمجموعات الشاملةالتكرار عبر المجموعاتمراجعة - متتبع البطولة10أساسيات تضمين القوائم (List Comprehensions)
الصيغة البرمجيةإنشاء قوائم بسيطةإضافة الشروطاستخدام تجميع البياناتمراجعة - بيت القوائممراجعة - عناصر الحرية5اتخاذ القرارات المتقدم
المعامل الثلاثيالتحقق من الانتماءالتحقق من الهويةأخطاء الإزاحةمراجعة - فلتر العطلات8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب3القواميس - الجزء الثاني
دوال القواميسالقواميس المتداخلةالتحقق من وجود المفاتيحالتكرار عبر القواميسمراجعة - عداد التكرار9تجميع البيانات المتقدم
استخدام Sumإيجاد الحد الأدنى والأقصىفرز البيانات بكفاءةمراجعة - Dictionary Sorter12أساسيات معالجة الأخطاء
ما هي معالجة الأخطاء؟كتلة Try و Exceptالتعامل مع استثناءات متعددةمراجعة - أخطاء عربة التسوقتدرّب بنفسك: مترجم Python عبر الإنترنت