• 0

كيف أحصل على عناصر ذات ترتيب معين في قائمة كبيرة في بايثون؟

لنفترض أن لدي قائمة كبيرة تحوي على عناصر من 0 إلى 1000، فما الطريقة الصحيحة لإنتاج قائمة من العناصر ذات ترتيب 10 مثل [0, 10, 20, 30 …] ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يوجد العديد من الطرق لفعل ذلك في بايثون، فيمكنك على سبيل المثال استخدام طريقة تشريح القائمة وتعتبر هذه الطريقة الأكثر وضوحا لكنها لا تعمل على جميع أنواع القوائم وهي ليست مناسبة للقوائم الكبيرة:

source_list[0::10]

أو يمكنك استخدام دالة islice من وحدة itertools وتعمل هذه الطريقة على جميع أنواع القوائم وهي لا تستهلك الكثير من الذاكرة لكن عيبها الوحيد أنها غير مناسبة للقوائم الضخم والخطوات الكبيرة:

itertools.islice(source_sequence, 0, None, 10)

ومن الطرق الأخرى أيضا استخدام حلقة التكرار for كما في المثال التالي:

(source_list[i] for i in xrange(0, len(source_list), 10))

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن