تقوم القائمة ثنائية الأبعاد بوضع القوائم الأخرى في قائمة واحدة كعناصر للقائمة، وهي عبارة عن تداخل للقوائم . أولئك الذين تعرضوا لـ C أو C ++ قد يفهمون مفهوم المصفوفات في Python، المصفوفات موجودة في مكتبات الطرف الثالث، لذلك، إذا أردنا استخدام أساليب المصفوفة في Python دون تثبيت المكونات الإضافية لجهة خارجية، فيجب علينا استخدامها قائمة ثنائية الأبعاد هذه الطريقة.
في الواقع، يمكن أن تكون العناصر الموجودة في القائمة من أي نوع بيانات، فلنلقِ نظرة على مثال:
my_list=[[1,2,3,4,5],'dotcpp',{1,2,3,},('www','dotcpp','com')]print(my_list)
الإخراج هو:
[[1,2,3,4,5],'dotcpp',{1,2,3},('www','dotcpp','com')]
تحتوي هذه القائمة على قوائم وسلاسل ومجموعات وصفوف. عندما تكون جميع العناصر الموجودة في القائمة عبارة عن قوائم، فهي القائمة ثنائية الأبعاد الأكثر استخدامًا لدينا. وسيقدم ما يلي عدة طرق لإنشاء القوائم ثنائية الأبعاد والوصول إليها.
طريقة الإنشاء المباشر هي إدخال اسم القائمة مباشرة بعد تعريفه، فلنحدد لوحة مفاتيح صغيرة بسيطة، وهي 1-9:
my_list=[[1,2,3],[4,5,6],[7,8,9]]طباعة(my_list)
الإخراج هو:
[[1،2،3]،[4،5،6]،[7،8،9]]
وعندما نفهمها، يمكننا أن نفهمها على النحو التالي:
كما يتبين من الشكل، فإن my_list[0] يتوافق مع [1,2,3]، لذا عندما نصل إلى 1، تكون إحداثياته المقابلة (0,0)، ويمكننا الوصول إليه من خلال الفهرس، أي، my_list[0] [0]، قيمته تتوافق مع 1، ويتم الوصول إلى القيم الأخرى بنفس الطريقة، على سبيل المثال، طريقة الوصول المقابلة للعنصر 9 هي my_list[2][2].
يمكن أيضًا إنشاء قائمة باستخدام حلقة، عادةً باستخدام حلقة for، فلنقم بإنشاء قائمة ثنائية الأبعاد مقاس 6*6، ويكون الكود كما يلي:
my_list=[]#قم أولاً بإنشاء قائمة رئيسية foriinrange(6):#قم بالتكرار 6 مرات وقم بإنشاء قائمة جديدة لكل عنصر من عناصر القائمة الرئيسية بدوره j=[]#قم أولاً بإنشاء قائمة جديدة وإضافتها إلى القائمة الرئيسية list my_list append(j)forminrange(1,7):j.append(m)#إضافة عناصر إلى القائمة الفرعية print(my_list)#Output.
الإخراج هو:
[[1،2،3،4،5،6]،[1،2،3،4،5،6]،[1،2،3،4،5،6]،[1،2،3، 4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
يجب أن تكون نتيجة الإخراج الفعلية في سطر واحد ويتم ترتيبها على هذا النحو لتسهيل فهم الجميع. يمكنك أيضًا محاولة إنشاء قائمة ثنائية الأبعاد من خلال حلقة while.
يمكن أيضًا إنشاء قوائم ثنائية الأبعاد باستخدام فهم القائمة، لقد تعلمنا للتو فهم القائمة في القسم السابق، حتى نتمكن من استخدام هذه الطريقة مباشرةً لتبسيط التعليمات البرمجية الخاصة بنا.
نقوم مرة أخرى بإنشاء قائمة ثنائية الأبعاد مكونة من ستة صفوف وستة أعمدة، رمزها بسيط نسبيًا.
my_list=[[iforiinrange(1,7)]forjinrange(1,7)]print(my_list)
الإخراج هو:
[[1،2،3،4،5،6]،[1،2،3،4،5،6]،[1،2،3،4،5،6]،[1،2،3، 4,5,6],[1,2,3,4,5,6],[1,2,3,4,5,6]]
لا توفر هذه الطريقة الوقت فحسب، بل تعمل أيضًا على تحسين الكود، وهي تعادل إنشاء 6 قوائم في حلقة وتعيين 6 قيم، وفي النهاية يتم وضعها في قائمة لتشكيل قائمة ثنائية الأبعاد.
دعونا نتعلم المزيد من خلال مثال.
نريد إنشاء قائمة 6*6، ومن ثم يتم اختيار القيم الموجودة فيها بشكل عشوائي من 1 إلى 100. الرمز هو كما يلي:
importrandom#random عبارة عن وحدة نمطية في مكتبة النظام ويمكن استدعاؤها في أي وقت، وإليك مقدمة مختصرة my_list=[]#قم أولاً بإنشاء القائمة foriinrange(6):# أنشئ 6 قوائم في حلقة وضعها في my_list j. =[]my_list.append (j)forkinrange(6):c=random.randint(1,100)# استدعاء طريقة عشوائية لإنشاء أرقام عشوائية، وتعيين قيمة الرقم العشوائي الذي تم إنشاؤه إلى cj.append(c)# أضف قيمة c print(my_list) في القائمة j
الإخراج هو:
[[52,83,15,35,54,60],[17,61,77,99,60,50],[88,81,9,61,76,95],[21,52,20, 49,10,61],[94,81,48,27,80,9],[1,94,57,66,95,97]]
تتوافق فكرة هذا السؤال مع الطريقة الثانية أعلاه، ويمكن للطلاب الذين لا يتقنون اشتقاق القائمة استخدام هذه الطريقة في المرحلة المبكرة، مقارنة بالمثال السابق، فهي تضيف دالة قيمة عشوائية.
فيما يتعلق بالقائمة ثنائية الأبعاد، فهذا مهم جدًا للطلاب الذين يرغبون في المشاركة في المسابقة، سواء واجهت مشكلة المتاهة أو مشكلة الملكة الثانية لاحقًا، فلا يمكنك الاستغناء عن استخدام القائمة ثنائية الأبعاد سوف نقدمها هنا بإيجاز، وكفهم أولي، سيكون هناك توضيحات حول هذين النوعين من الأسئلة في أسئلة المسابقة اللاحقة. بالطبع، يمكننا أيضًا الانتقال إلى القائمة ثنائية الأبعاد.