"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء قائمة جديدة بكل عنصر رقم من القائمة الأصلية؟

كيفية إنشاء قائمة جديدة بكل عنصر رقم من القائمة الأصلية؟

تم النشر بتاريخ 2024-11-08
تصفح:883

How to Generate a New List with Every Nth Item from an Original List?

أنشئ قائمة بكل عنصر رقم من القائمة الأصلية

في تحليل البيانات أو البرمجة، غالبًا ما يكون من الضروري العمل مع مجموعة فرعية من قائمة. إحدى المهام الشائعة هي إنشاء قائمة جديدة تحتوي فقط على كل عنصر رقم من القائمة الأصلية. على سبيل المثال، بالنظر إلى قائمة الأعداد الصحيحة من 0 إلى 1000، كيف يمكننا الحصول على قائمة تتضمن العنصر الأول فقط وكل العنصر العاشر اللاحق؟

باستخدام حلقة for التقليدية، يمكننا إنجاز هذه المهمة على النحو التالي:

xs = list(range(1001))
new_list = []
for i, x in enumerate(xs):
    if i % 10 == 0:
        new_list.append(x)

ومع ذلك، يتوفر نهج أكثر إيجازًا وفعالية باستخدام تشريح بايثون:

>>> xs = list(range(1001))
>>> new_list = xs[0::10]

في هذا الحل، يقوم التعبير xs[0::10] بإنشاء قائمة جديدة تتضمن كل عنصر عاشر يبدأ من الفهرس 0. والنتيجة هي قائمة تحتوي على [0 ، 10، 20، 30، ...، 1000] دون الحاجة إلى تكرار الحلقات أو الشيكات المشروطة.

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

$ python -m timeit -s "xs = list(range(1000))" "[x for i, x in enumerate(xs) if i % 10 == 0]"
500 loops, best of 5: 476 usec per loop

$ python -m timeit -s "xs = list(range(1000))" "xs[0::10]"
100000 loops, best of 5: 3.32 usec per loop

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

بيان الافراج أعيد طبع هذه المقالة على: 1729392499 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3