فرز البيانات بكفاءة
جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 48 من 78.
يعد الفرز عملية أساسية في علوم الحاسوب، وتوفر لغة بايثون أدوات مدمجة قوية لفرز البيانات بكفاءة. الدالة الأساسية للفرز هي sorted()، والتي يمكن استخدامها لفرز أنواع مختلفة من البيانات، بما في ذلك الأرقام والسلاسل النصية والكائنات الأكثر تعقيداً.
الفرز الأساسي:
تأخذ دالة sorted() كائناً قابلاً للتكرار (مثل القائمة list، أو الصف tuple، أو المجموعة set) كمعامل لها، وتُرجع قائمة جديدة تحتوي على العناصر مرتبة. بشكل افتراضي، يتم الفرز بترتيب تصاعدي.
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 بترتيب تنازلي.
فرز السلاسل النصية:
يمكن للدالة sorted() أيضًا فرز السلاسل النصية بناءً على ترتيبها المعجمي (أي الترتيب الذي ستظهر به في القاموس).
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# الناتج: ['apple', 'banana', 'cherry']في هذا المثال، يقوم sorted() بفرز قائمة words بترتيب أبجدي.
الفرز المخصص باستخدام دالة المفتاح (Key Function):
لاحتياجات الفرز الأكثر تعقيداً، يمكنك استخدام المعامل key لتحديد دالة تحدد ترتيب الفرز. يتم تطبيق دالة key على كل عنصر قبل الفرز، وتُستخدم القيم المرتجعة للمقارنة.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# المخرجات: ['fig', 'kiwi', 'banana']في هذه الحالة، يقوم sorted() بفرز قائمة words بناءً على طول كل كلمة، باستخدام الدالة len() كـ key.
التحدي
سهلاكتب برنامجاً يقوم بمهام الفرز التالية باستخدام الدالة sorted():
- فرز قائمة من الأرقام بترتيب تصاعدي.
- فرز نفس قائمة الأرقام بترتيب تنازلي.
- فرز قائمة من السلاسل النصية بترتيب أبجدي.
- فرز نفس قائمة السلاسل النصية بناءً على طولها.
ورقة مرجعية
تقوم الدالة sorted() بفرز البيانات وإرجاع قائمة جديدة تحتوي على العناصر المرتبة.
الفرز الأساسي (ترتيب تصاعدي):
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
# Output: [1, 1, 2, 3, 4, 5, 6, 9]الفرز العكسي (ترتيب تنازلي):
sorted_numbers_desc = sorted(numbers, reverse=True)
# Output: [9, 6, 5, 4, 3, 2, 1, 1]فرز السلاسل النصية أبجدياً:
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
# Output: ['apple', 'banana', 'cherry']فرز مخصص باستخدام دالة المفتاح (key function):
sorted_words_by_length = sorted(words, key=len)
# Sorts by string lengthجرّب بنفسك
# مدخلات البداية
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# المهمة 1: فرز الأرقام بترتيب تصاعدي
# المهمة 2: فرز الأرقام بترتيب تنازلي
# المهمة 3: فرز الكلمات أبجدياً
# المهمة 4: فرز الكلمات حسب الطول
# استبدل 'pass' بالكود الخاص بك لكل مهمة
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التعامل مع استثناءات متعددةمراجعة - أخطاء عربة التسوق