cb
codebamin
الفصل 6 · القوائم (Lists)

أساليب متقدمة للتعامل مع القوائم

إليك بعض الدوال والأساليب المفيدة الأخرى.

sorted: تستقبل شيئًا قابلًا للتكرار عليه وتُرجع قائمة بالعناصر مرتبة من الأصغر إلى الأكبر، بالصيغة:

sorted(some_list)

جرّب مثلًا هذا السطر في الطرفية:

sorted([2, 9, 1, 8, 5, 6])

in: معامل مقارنة يتحقق مما إذا كانت قيمة موجودة داخل قائمة، بالصيغة:

value in some_list

شغّل المثال التالي:

__program_indented__

sum: تجمع عناصر شيء قابل للتكرار يحتوي على أعداد، بالصيغة:

sum(some_list)

شغّل المثال التالي:

__program_indented__

count: تُرجع عدد مرات ظهور قيمة معينة داخل القائمة، بالصيغة:

some_list.count(value)

جرّب هذا السطر في الطرفية:

[1, 2, 3, 2, 7, 2, 5].count(2)

قد تتعرف على بعض هذه الأفكار من التمارين السابقة. تلك التمارين لم تكن بلا فائدة؛ فقد تعلمت من خلالها مهارات أساسية مهمة. مثلًا، يمكنك استخدام in للتحقق بسهولة من وجود العدد 5 في قائمة، لكن لا توجد صيغة بسيطة مماثلة تسأل مباشرة: «هل يوجد عدد أكبر من 5؟».

ستحل الآن أربعة تمارين جديدة على المفاهيم السابقة. مرة أخرى، توجد أسطر صحيحة وخاطئة مختلطة، وعليك اختيار السطر المناسب من القائمة:

sum(len(x)) sum(range(x)) sum(range(len(x))) sum(len(range(x))) sum(range(x)) + 1 sum(range(x + 1)) sum(x) / len(x) sum(x) / range(x) sum(x) / range(len(x)) sum(x) / len(range(x)) sorted(x)[1] sorted(x)[2] sorted(x)[-1] sorted(x)[-2] x.count(1) >= 0 x.count(1) > 0 x.count(1) > 1

إليك البرنامج:

__copyable__ x = [1, 2, 0, 3] y = 1 in x print(y)

استبدل الجزء 1 in x، مع إبقاء y = ، بسطر واحد من القائمة السابقة يؤدي الوظيفة نفسها.

عمل ممتاز! في التمرين التالي ابدأ بهذا البرنامج غير المكتمل:

__copyable__ x = [15, 12, -6, 3] y = (insert_one_line_from_above) print(y)

استبدل الجزء الذي يأتي بعد y = بسطر واحد من القائمة السابقة. يجب أن يطبع البرنامج النهائي متوسط الأعداد في x، أو ما يسمى رياضيًا بالمتوسط الحسابي (Mean).

أحسنت! في التمرين التالي ابدأ بهذا البرنامج:

__copyable__ x = 100 y = (insert_one_line_from_above) print(y)

استبدل الجزء بعد y = بسطر واحد من القائمة السابقة. يجب أن يطبع البرنامج مجموع جميع الأعداد من 1 إلى x شاملًا، أي 1 + 2 + 3 + ... + x.

ممتاز. وهذا هو التمرين الأخير:

__copyable__ x = [12, -6, 2, -1, 3] y = (insert_one_line_from_above) print(y)

استبدل الجزء بعد y = بسطر من القائمة السابقة. يجب أن يطبع البرنامج ثاني أصغر قيمة في x.

تهانينا! أصبحت الآن متمكنًا من أهم دوال وأساليب القوائم.

solution.py
1
2
3
4
5
6
7
8
9
10
الطرفية (shell)
>>>