Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

فرز البيانات بكفاءة

جزء من قسم 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.

challenge icon

التحدي

سهل

اكتب برنامجًا ينفّذ مهام Sorting التالية باستخدام الدالة sorted():

  1. رتّب قائمة من numbers بترتيب ascending.
  2. رتّب قائمة numbers نفسها بترتيب descending.
  3. رتّب قائمة من strings بترتيب Alphabetical.
  4. رتّب قائمة 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)
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow

تدرّب بنفسك: مترجم Python عبر الإنترنت