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

كيفية الوصول بكفاءة إلى عناصر متعددة من قائمة حسب الفهرس؟

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

How to Efficiently Access Multiple Elements from a List by Index?

الوصول إلى عناصر القائمة المتعددة عن طريق الفهرس

يعد تحديد عناصر محددة من القائمة بناءً على فهرسها عملية شائعة في البرمجة. في هذا السؤال، يبحث المستخدم عن الطريقة المثلى لإنشاء قائمة جديدة تحتوي على عناصر من قائمة معينة في مؤشرات محددة مسبقًا.

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

أحد البدائل المقترحة هو استخدام الدالةoperator.itemgetter. تأخذ هذه الوظيفة مجموعة من المؤشرات كوسيطات وترجع كائنًا قابلاً للاستدعاء يمكن تطبيقه على القائمة لاسترداد العناصر المقابلة. على سبيل المثال:

from operator import itemgetter 
a = [-2, 1, 5, 3, 8, 5, 6]
b = [1, 2, 5]
print(itemgetter(*b)(a))
# Result: (1, 5, 5)

يتضمن البديل الآخر استخدام مكتبة NumPy. يوفر NumPy عمليات مصفوفة قوية، بما في ذلك القدرة على الوصول إلى العناصر بناءً على المؤشرات. يمكن تحقيق ذلك باستخدام بناء الجملة a[b]:

import numpy as np أ = np.array([-2, 1, 5, 3, 8, 5, 6]) ب = [1، 2، 5] طباعة (قائمة (أ [ب])) # النتيجة: [1، 5، 5]
import numpy as np
a = np.array([-2, 1, 5, 3, 8, 5, 6])
b = [1, 2, 5]
print(list(a[b]))
# Result: [1, 5, 5]
تجدر الإشارة إلى أن الحل الحالي للمستخدم صالح ومعقول أيضًا. يعتمد الاختيار بين الطرق المختلفة على التفضيلات الشخصية والسياق المحدد الذي يتم استخدامها فيه.

أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3