أساليب متقدمة للتعامل مع القوائم
إليك بعض الدوال والأساليب المفيدة الأخرى.
sorted: تستقبل شيئًا قابلًا للتكرار عليه وتُرجع قائمة بالعناصر مرتبة من الأصغر إلى الأكبر، بالصيغة:
sorted(some_list)
جرّب مثلًا هذا السطر في الطرفية:
sorted([2, 9, 1, 8, 5, 6])
in: معامل مقارنة يتحقق مما إذا كانت قيمة موجودة داخل قائمة، بالصيغة:
value in some_list
شغّل المثال التالي:
nums = [2, 9, 1, 8, 5, 64]
print(7 in nums)
print(2 in nums)
sum: تجمع عناصر شيء قابل للتكرار يحتوي على أعداد، بالصيغة:
sum(some_list)
شغّل المثال التالي:
sum([5, 3, 4])
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
إليك البرنامج:
x = [1, 2, 0, 3]
y = 1 in x
print(y)
استبدل الجزء 1 in x، مع إبقاء y = ، بسطر واحد من القائمة السابقة يؤدي الوظيفة نفسها.
يجب أن يتكون حلك من ثلاث تعليمات بالضبط:
x = ['a', 'b', 'c']، ثمy =وبعدها سطر واحد من القائمة كما هو تمامًا، ثمprint(y).متى تكون
1 in xمساوية لـTrue؟عندما تكون
1موجودة فيx.قد تظهر
1فيxمرة أو مرتين أو ثلاثًا......لكن ليس صفر مرة.
عمل ممتاز! في التمرين التالي ابدأ بهذا البرنامج غير المكتمل:
x = [15, 12, -6, 3]
y = (insert_one_line_from_above)
print(y)
استبدل الجزء الذي يأتي بعد y = بسطر واحد من القائمة السابقة. يجب أن يطبع البرنامج النهائي متوسط الأعداد في x، أو ما يسمى رياضيًا بالمتوسط الحسابي (Mean).
يجب أن يتكون حلك من ثلاث تعليمات بالضبط:
x = [15, 12, -6, 3]، ثمy =وبعدها سطر واحد من القائمة كما هو تمامًا، ثمprint(y).إذا لم تكن متأكدًا، ابحث عن طريقة حساب المتوسط.
لحساب متوسط الأعداد في
xنحتاج إلى شيئين.ما الدالتان أو الأسلوبان اللذان يعطينا هذين الشيئين؟
كيف تجمع هذين الشيئين لحساب المتوسط؟
أحسنت! في التمرين التالي ابدأ بهذا البرنامج:
x = 100
y = (insert_one_line_from_above)
print(y)
استبدل الجزء بعد y = بسطر واحد من القائمة السابقة. يجب أن يطبع البرنامج مجموع جميع الأعداد من 1 إلى x شاملًا، أي 1 + 2 + 3 + ... + x.
يجب أن يتكون حلك من ثلاث تعليمات بالضبط:
x = 100، ثمy =وبعدها سطر واحد من القائمة كما هو تمامًا، ثمprint(y).ما الدالة أو الأسلوب الذي يمكنه جمع مجموعة من القيم؟
ما الدالة أو الأسلوب الذي يعطينا الأعداد
1, 2, 3, ..., x؟تحتاج إلى تعديل صغير، وإلا ستُستبعد القيمة الأخيرة
x.
ممتاز. وهذا هو التمرين الأخير:
x = [12, -6, 2, -1, 3]
y = (insert_one_line_from_above)
print(y)
استبدل الجزء بعد y = بسطر من القائمة السابقة. يجب أن يطبع البرنامج ثاني أصغر قيمة في x.
يجب أن يتكون حلك من ثلاث تعليمات بالضبط:
x = [12, -6, 2, -1, 3]، ثمy =وبعدها سطر واحد من القائمة كما هو تمامًا، ثمprint(y).الأعداد في
xغير مرتبة. هل يمكنك ترتيبها بطريقة ما؟بعد معرفة الطريقة، جرّب الدالة في الطرفية حتى تفهم سلوكها.
كيف تستخدم هذه الدالة للحصول على أصغر قيمة في القائمة؟ وماذا عن أكبر قيمة؟
بعد ذلك، كيف تحصل على ثاني أصغر قيمة؟
تهانينا! أصبحت الآن متمكنًا من أهم دوال وأساليب القوائم.