اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

إليك الفرق بين الكودين بشكل واضح وبسيط:

أول كود

capitals = ['r','f','l']
cpas = {"D","d"}

for cap, cpa in zip(capitals, cpas):
    print(cpa, ":", cap)
capitals = ['r','f','l']
cpas = {"D","d"}

for cap, cpa in zip(capitals, cpas):
    print(cpa, ":", cap)

ما يحدث هنا:

capitals → قائمة (list)

cpas → مجموعة (set)

zip(capitals, cpas)
يربط العنصر الأول مع الأول، الثاني مع الثاني…
→ لكن المجموعة set غير مرتبة!
لذلك ترتيب "D", "d" غير مضمون.

الحلقة تعطيك مخرجات صحيحة مثل:

D : r d : f

أو قد تكون بالعكس… حسب ترتيب الـ set.

الكود الثاني (خاطئ)

capitals = ['r','f','l']
cpas = {"D","d"}

for capitals , cpas in capitals.items():
    print(cpas, ":", capitals)
capitals = ['r','f','l']
cpas = {"D","d"}

for capitals , cpas in capitals.items():
    print(cpas, ":", capitals)

 الأخطاء هنا:

capitals هو list
→ والقوائم ليس لديها items()
→ سيعطيك خطأ:

AttributeError: 'list' object has no attribute 'items'

أنت تكتب:

for capitals, cpas in capitals.items():

لكنّك:

تستخدم نفس اسم المتغيّر capitals للّست والقيم داخل الحلقة

وتستخدم items() مع متغيّر ليس قاموسًا

حتى لو كان قاموسًا، الصياغة غلط لأنها تعيد مفاتيح وقيم، وليس عناصر من قائمتين.

إذا أردت الكود الثاني يعمل، يجب أن يكون لديك dict هكذا:

capitals = {"r": "D", "f": "d"}

for cap, cpa in capitals.items():
    print(cpa, ":", cap)
capitals = {"r": "D", "f": "d"}

for cap, cpa in capitals.items():
    print(cpa, ":", cap)

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...