Blackhacker نشر 9 فبراير 2016 أرسل تقرير نشر 9 فبراير 2016 أريد معرفة ما أسرع طريقة لإنشاء قائمة من عدد معين من القوائم في بايثون، أي كالتالي: [[],[],[]...] لأنني جربت استخدام هذه الطريقة: [[]]*n لكنني وجدت أن كل عنصر في قائمة هو نفسه أي عند إضافة عنصر إلى القائمة الأولى تجد أن جميع القوائم ستُضاف إليها هذا الرقم. اقتباس
0 هشام رزق الله نشر 9 فبراير 2016 أرسل تقرير نشر 9 فبراير 2016 يوجد عدة طرق في بايثون لفعل ذلك، فيمكنك على سبيل المثال استعمال طريقة تفهيم القائمة وذلك عن طريق استخدام دالة 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() لكن هذه الطريقة أبطئ بكثير من الطرق الأخرى. اقتباس
السؤال
Blackhacker
أريد معرفة ما أسرع طريقة لإنشاء قائمة من عدد معين من القوائم في بايثون، أي كالتالي:
[[],[],[]...]
لأنني جربت استخدام هذه الطريقة:
[[]]*n
لكنني وجدت أن كل عنصر في قائمة هو نفسه أي عند إضافة عنصر إلى القائمة الأولى تجد أن جميع القوائم ستُضاف إليها هذا الرقم.
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.