• 0

ما أسرع طريقة لإنشاء قائمة من عدد معين من القوائم في بايثون؟

أريد معرفة ما أسرع طريقة  لإنشاء قائمة من عدد معين من القوائم في بايثون، أي كالتالي:

[[],[],[]...]

لأنني جربت استخدام هذه الطريقة:

[[]]*n

لكنني وجدت أن كل عنصر في قائمة هو نفسه أي عند إضافة عنصر إلى القائمة الأولى تجد أن جميع القوائم ستُضاف إليها هذا الرقم.

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


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

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

l = [[] for x in xrange(n)]

أو يمكنك فعل ذلك بطريقة أسرع من الطريقة الأولى وذلك عن طريق استخدام دالة repeat من وحدة itertools مع حلقة for كما في المثال التالي:

from itertools import repeat
l = [[] for i in repeat(None, n)]

ملاحظة: يمكنك تجنب استخدام حلقات التكرار وذلك عن طريق استخدام NumPy كما في المثال التالي:

l = numpy.empty((n, 0)).tolist()

لكن هذه الطريقة أبطئ بكثير من الطرق الأخرى.

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


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

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

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

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


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

تسجيل الدخول

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


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