0Pricing
Python Academy · درس

القوائم المتداخلة والتكرار

تعامَل مع القوائم المتداخلة وكرّر عناصرها بكفاءة باستخدام حلقات for

القوائم المتداخلة والتكرار درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.

مقدمة

يمكن أن تحتوي القوائم على قوائم أخرى، مما ينشئ بنى متعددة الأبعاد. ويُعد إتقان التكرار المتداخل أساسيًا للتعامل مع الشبكات والمصفوفات.

بنية القوائم المتداخلة

تمثل matrix = [[1,2,3],[4,5,6],[7,8,9]] شبكة بحجم 3x3. ويصل matrix[1][2] إلى الصف 1 والعمود 2، أي إلى القيمة 6.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
print(matrix[1][2])

التكرار عبر الصفوف

يطبع for row in matrix: print(row) كل قائمة فرعية. ويكون row نفسه قائمة يمكن فهرستها.
matrix = [[1,2],[3,4]]
for row in matrix:
    print(row)

حلقات for متداخلة

يطبع for row in matrix: for val in row: print(val) كل عنصر على حدة.
matrix = [[1,2],[3,4]]
for row in matrix:
    for val in row:
        print(val, end=' ')

تسطيح قائمة متداخلة

يُسطّح [x for row in matrix for x in row] مستوى واحدًا. وهذا مثال على استيعاب قائمة متداخل.
matrix = [[1,2],[3,4]]
flat = [x for row in matrix for x in row]
print(flat)

إنشاء شبكة

لإنشاء شبكة بحجم N×M، استخدموا: grid = [[0]*M for _ in range(N)] استخدموا استيعاب قائمة، وليس [[0]*M]*N، لأن الصيغة الثانية تنشئ صفوفًا لها المراجع نفسها.
grid = [[0]*3 for _ in range(3)]
grid[0][0] = 1
print(grid)

فخ الصفوف ذات المراجع المشتركة

تنشئ grid = [[0]*3]*3 ثلاثة مراجع إلى الصف نفسه. ويؤدي تعديل أحدها إلى تعديلها جميعًا. استخدموا دائمًا استيعاب القائمة.
bad = [[0]*3]*3
bad[0][0] = 9
print(bad)  # all rows changed!

استخدام zip() للتكرار المتوازي

يكرر for a, b in zip(list1, list2) عبر قائمتين بالتوازي. وتتوقف zip() عند القائمة الأقصر.
names = ['Alice', 'Bob']
scores = [90, 85]
for n, s in zip(names, scores):
    print(n, s)

استخدام enumerate() مع القوائم المتداخلة

يمنحكم for i, row in enumerate(matrix): for j, val in enumerate(row): كلًّا من الفهارس والقيم.
matrix = [[1,2],[3,4]]
for i, row in enumerate(matrix):
    for j, val in enumerate(row):
        print(f'[{i}][{j}]={val}')

فرز قائمة من القوائم

يفرز sorted(data, key=lambda x: x[1]) العناصر وفق العنصر الثاني في كل قائمة فرعية.
data = [['Bob',85],['Alice',90],['Charlie',78]]
data.sort(key=lambda x: x[1])
print(data)

تبديل صفوف المصفوفة وأعمدتها

يحوّل transposed = list(zip(*matrix)) الصفوف إلى أعمدة. وتفكك * القائمة الخارجية إلى وسائط تُمرر إلى zip.
matrix = [[1,2,3],[4,5,6]]
print(list(zip(*matrix)))

تحقق سريع

ما الطريقة الصحيحة لإنشاء شبكة 3x3 مملوءة بالأصفار لتجنب فخ الصفوف ذات المراجع المشتركة؟

مراجعة

يمكن الوصول إلى القوائم المتداخلة باستخدام [row][col]، والتكرار عبرها باستخدام حلقات for متداخلة. استخدموا الاستيعاب لإنشاء الشبكات، وzip() للتكرار المتوازي، وzip(*matrix) لتبديل الصفوف والأعمدة.

تابعوا التقدم

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

الأسئلة الشائعة

هل درس «القوائم المتداخلة والتكرار» مجاني؟

نعم — نص درس «القوائم المتداخلة والتكرار» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.

ماذا ستتعلم في «القوائم المتداخلة والتكرار»؟

تعامَل مع القوائم المتداخلة وكرّر عناصرها بكفاءة باستخدام حلقات for تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «القوائم المتداخلة والتكرار»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. إنشاء القوائم والوصول إليها
  2. تعديل القوائم
  3. Tuples وعدم قابلية التغيير
  4. القوائم المتداخلة والتكرار
← العودة إلى Python Academy