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