أنشئ قائمة بكل عنصر رقم من القائمة الأصلية
في تحليل البيانات أو البرمجة، غالبًا ما يكون من الضروري العمل مع مجموعة فرعية من قائمة. إحدى المهام الشائعة هي إنشاء قائمة جديدة تحتوي فقط على كل عنصر رقم من القائمة الأصلية. على سبيل المثال، بالنظر إلى قائمة الأعداد الصحيحة من 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
يوفر هذا النهج الأمثل باستخدام التقطيع مزايا البساطة والأداء لإنشاء قوائم جديدة مع كل عنصر رقم من القائمة الأصلية.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3