تحدي المراجعة - فرز Lambda
جزء من قسم Logic & Flow في رحلة Python على Coddy — الدرس 59 من 78.
تعد دوال لامبدا (Lambda functions) مفيدة للغاية مع دالة sorted() لتخصيص الفرز في سيناريوهات مختلفة. إليك بعض الأمثلة:
فرز السلاسل النصية حسب الطول:
names = ["Alice", "Bob", "Charlie", "Diana"]
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)
# الناتج: ['Bob', 'Alice', 'Diana', 'Charlie']فرز القواميس حسب القيم:
grades = {"Alice": 85, "Bob": 90, "Charlie": 78}
sorted_grades = sorted(grades.items(), key=lambda x: x[1])
print(sorted_grades)
# المخرجات: [('Charlie', 78), ('Alice', 85), ('Bob', 90)]فرز الأرقام حسب القيمة المطلقة:
numbers = [-10, 15, -20, 25]
sorted_numbers = sorted(numbers, key=lambda x: abs(x))
print(sorted_numbers)
# Output: [-10, 15, -20, 25]فرز الصفوف (Tuples) بناءً على معايير متعددة:
data = [("Alice", 25), ("Bob", 30), ("Charlie", 25)]
sorted_data = sorted(data, key=lambda x: (x[1], x[0]))
print(sorted_data)
# المخرجات: [('Alice', 25), ('Charlie', 25), ('Bob', 30)]التحدي
سهلأنشئ دالة باسم sort_tuples تأخذ قائمة من الأزواج data كوسيط (argument). كل زوج (tuple) في data يحتوي على عنصرين: سلسلة نصية (string) ورقم. يجب أن تستخدم الدالة دالة sorted() جنبًا إلى جنب مع دالة lambda لفرز قائمة الأزواج بناءً على العنصر الثاني (الرقم) بترتيب تصاعدي. يجب أن تعيد الدالة قائمة الأزواج المرتبة.
ورقة مرجعية
فرز السلاسل النصية حسب الطول:
names = ["Alice", "Bob", "Charlie", "Diana"]
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)
# المخرجات: ['Bob', 'Alice', 'Diana', 'Charlie']فرز القواميس حسب القيم:
grades = {"Alice": 85, "Bob": 90, "Charlie": 78}
sorted_grades = sorted(grades.items(), key=lambda x: x[1])
print(sorted_grades)
# المخرجات: [('Charlie', 78), ('Alice', 85), ('Bob', 90)]فرز الأرقام حسب القيمة المطلقة:
numbers = [-10, 15, -20, 25]
sorted_numbers = sorted(numbers, key=lambda x: abs(x))
print(sorted_numbers)
# المخرجات: [-10, 15, -20, 25]فرز الصفوف (Tuples) حسب معايير متعددة:
data = [("Alice", 25), ("Bob", 30), ("Charlie", 25)]
sorted_data = sorted(data, key=lambda x: (x[1], x[0]))
print(sorted_data)
# المخرجات: [('Alice', 25), ('Charlie', 25), ('Bob', 30)]جرّب بنفسك
def sort_tuples(data):
# اكتب الكود هنايتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Logic & Flow
1استكشاف المتغيرات
الثوابتإسناد المتغيرات المتعددةتبديل المتغيراتالمتغيرات النائبةتقريب الأرقامتحويل القوائم4تطبيق سجل جهات الاتصال
عرض القائمةإضافة جهة اتصال7المجموعات - الجزء الثاني
العمليات الرياضية - الجزء الأولالعمليات الرياضية - الجزء الثانيمراجعة - البحث عن الكنزالمجموعات الجزئية والمجموعات الشاملةالتكرار عبر المجموعاتمراجعة - متتبع البطولة10أساسيات تضمين القوائم (List Comprehensions)
الصيغة البرمجيةإنشاء قوائم بسيطةإضافة الشروطاستخدام تجميع البياناتمراجعة - بيت القوائممراجعة - عناصر الحرية5اتخاذ القرارات المتقدم
المعامل الثلاثيالتحقق من الانتماءالتحقق من الهويةأخطاء الإزاحةمراجعة - فلتر العطلات8مدير سجلات الطلاب
نظرة عامة على المشروعإضافة طالب11الدوال المتقدمة
إرجاع قيم متعددةدوال Lambda الجزء الأولدوال Lambda الجزء الثانيتحدي المراجعة - فرز Lambdaالدوال العودية الجزء الأولالدوال العودية الجزء الثانيمراجعة - جمع القوائم المتداخلة3القواميس - الجزء الثاني
دوال القواميسالقواميس المتداخلةالتحقق من وجود المفاتيحالتكرار عبر القواميسمراجعة - عداد التكرار9تجميع البيانات المتقدم
استخدام Sumإيجاد الحد الأدنى والأقصىفرز البيانات بكفاءةمراجعة - Dictionary Sorter12أساسيات معالجة الأخطاء
ما هي معالجة الأخطاء؟كتلة Try و Exceptالتعامل مع استثناءات متعددةمراجعة - أخطاء عربة التسوق