ترتيب القوائم وعكسها

9.2 ترتيب القوائم وعكسها

أهداف التعلم

في نهاية هذا القسم، ينبغي أن تكون قادرًا على:

  • استيعاب مفهوم الترتيب.
  • استخدام التابعين المُضمَّنين sort() و reverse().

الترتيب

غالبًا ما يكون ترتيب العناصر في تسلسل أمرًا مفيدًا. الترتيب (Sorting) عملية تنظيم العناصر وفق تسلسل تصاعدي أو تنازلي.

يمكن أن يعمل الترتيب على البيانات الرقمية أو غير الرقمية. عند ترتيب النصوص، يُستخدم الترتيب الأبجدي. مثال: "bat" يأتي قبل "cat" لأن "b" يأتي قبل "c".

نقطة تحقق

مفاهيم تطبيقية

الترتيب

1.
ما العنصر الأخير في القائمة التالية إذا رُتِّبت بترتيب تنازلي؟
[12, 3, 19, 25, 16, -3, 5]
  1. 25
  2. -3
  3. 5
2.
رتب القائمة التالية بترتيب تصاعدي.
["cat", "bat", "dog", "coyote", "wolf"]
  1. ["bat", "cat", "coyote", "dog", "wolf"]
  2. ["wolf", "coyote", "dog", "cat", "bat"]
3.
ما العلاقة بين الكلمتين "flask" و "flash" في بايثون (Python)؟
  1. "flask" < "flash"
  2. "flask" == "flash"
  3. "flask" > "flash"

استخدام
sort()
و
reverse()

توفر بايثون توابع لترتيب عناصر القائمة.

  • يُرتِّب التابع sort() عناصر القائمة تصاعديًّا. بالنسبة للسلاسل النصية، تُستخدم قيم آسكي (ASCII values) وتأتي الأحرف الكبيرة قبل الأحرف الصغيرة، مما قد يؤدي إلى نتائج غير متوقعة. مثال: يُرتَّب "A" قبل "a" بترتيب تصاعدي، وكذلك "G"، ولذلك تأتي "Gail" قبل "apple".
  • يعكس التابع reverse() عناصر القائمة.

مثال 9.2

ترتيب القوائم وعكسها

    # إعداد قائمة أعداد
    num_list = [38, 92, 23, 16]
    print(num_list)

    # ترتيب القائمة
    num_list.sort()
    print(num_list)

    # إعداد قائمة كلمات
    dance_list = ["Stepping", "Ballet", "Salsa", "Kathak", "Hopak", "Flamenco", "Dabke"]

    # عكس القائمة
    dance_list.reverse()
    print(dance_list)

    # ترتيب القائمة
    dance_list.sort()
    print(dance_list)

مخرجات الشِفرة أعلاه:

    [38, 92, 23, 16]
    [16, 23, 38, 92]
    ["Dabke", "Flamenco", "Hopak", "Kathak", "Salsa", "Ballet", "Stepping"]
    ["Ballet", "Dabke", "Flamenco", "Hopak", "Kathak", "Salsa", "Stepping"]

مفاهيم تطبيقية

تابعا sort() و reverse()

استخدم القائمة التالية للإجابة عن الأسئلة أدناه.

board_games = ["go", "chess", "scrabble", "checkers"]
4.
ما الطريقة الصحيحة لترتيب القائمة board_games بترتيب تصاعدي؟
  1. sort(board_games)
  2. board_games.sort()
  3. board_games.sort('ascending')
5.
ما الطريقة الصحيحة لعكس القائمة board_games؟
  1. board_games.reverse()
  2. reverse(board_games)
6.
ما العنصر الأخير في board_games بعد تطبيق التابع reverse()؟
  1. 'go'
  2. 'checkers'
  3. 'scrabble'

جرّب بنفسك

الترتيب والعكس

أكمل البرنامج أدناه لترتيب الأرقام وطباعتها تصاعديًّا وتنازليًّا.