اذهب إلى المحتوى
  • 0

List Python

_22Mohamed

السؤال

أكتب دالة يمكن تمرير قيمة لها هذه القيمة عبارة مصفوفة من الاعداد الصحيحة ثم تقوم بإرجاع مجموع أكبر ثلاث اعداد بالمصفوفة. قم باستخدام التعريف التالي للدالة :

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

في لغة بايثون لجمع عناصر مصفوفة نستخدم الدالة sum:

print(sum([1, 2, 3])) # 6

لترتيب عناصر مصفوفة نستخدم الدالة sorted:

print(sorted([11, 2, 1, 9, 7])) # [1, 2, 7, 9, 11]

الدالة sorted تُرتب تصاعدياً لقلب الترتيب نستخدم الدالة sorted و نُمرر لها مُعامل آخر:

print(sorted([11, 2, 1, 9, 7], reverse=True)) # [11, 9, 7, 2, 1]

لأخذ قطعة من مصفوفة نستخدم slice كما هو موضح أدناه:

a[start:stop]  # نُحدد البداية و النهاية

مثلاً:

print([11, 2, 1, 9, 7][0:3]) # [11, 2, 1]

إجمع كل هذه النقاط مع بعض للوصول للشيء الذي تُريده أولاً الترتيب بشكل تنازلي ثانياً أخذ قطعة من المصفوفة المرتبة مكونة من 3 أعداد ثم إستعمال الدالة sum.

و هذا مثال بسيط:

print(sum(sorted([11, 2, 1, 9, 7], reverse=True)[0:3])) # 27

يُمكنك إستخدام هذه المراحل لإنشاء دالة تفعل ما تريد.

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

لإيجاد مجموع أكبر 3 أعداد، علينا فعل الآتي:

  • ترتيب المصفوفة ليكون البحث عن أكبر قيم سهل.
  • فصل أكبر 3 قيم لجمعهم، أو عمل For Loop عادية لمدة 3 مرات.

أولاً: سنستخدم sort لترتيب المصفوفة من الأكبر للأصغر هكذا:

// لاحظ الدالة المعطاه في الداخل لترتيب الأرقام من الأكبر للأصغر
[32, 256, 8, 16, 128, 64].sort((a, b) => b - a)

والآن سنستخدم splice لقطع أول 3 قيم هكذا:

// الرقم 0 يعني أننا سنبدأ القطع من أول عنصر في المصفوفة
// والرقم 3 يعني أننا سنتوقف عند العنصر الذي لدية رقم فهرس 3
[32, 256, 8, 16, 128, 64].sort((a, b) => b - a).splice(0, 3);

أصبح معنا الآن مصفوفة بها أكبر 3 أرقام. يمكنك عمل For Loop أو reduce. سأقوم بإستخدام reduce هكذا:

function sumOfLargestThree(array) {
	return array
		.sort((a, b) => b - a)
		.splice(0, 3)
		.reduce((total, current) => total + current, 0);
}

sumOfLargestThree([32, 256, 8, 16, 128, 64]); // => 448

 

تم التعديل في بواسطة إسلام عبدالعزيز
تعديل المثال
رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...