zip()
دمج عدة متسلسلات معًا — zip() zip()
zip() تمرّ على عدة كائنات قابلة للتكرار بالتوازي، وتُنتج صفًّا (tuple) من عنصر واحد من كل واحدة في كل خطوة.
مفيدة جدًا لدمج قائمتين متوازيتين (مثل أسماء وأعمار) في حلقة واحدة، أو لتحويلهما مباشرة إلى قاموس بـ dict(zip(...)).
تتوقّف zip تلقائيًا عند أقصر المتسلسلات الممرَّرة، ومنذ Python 3.10 يمكن تمرير strict=True لرفض الأطوال غير المتساوية بدل تجاهلها بصمت.
الصياغة
zip(*iterables, strict=False)
📄 مثال
names = ["سارة", "خالد"]
ages = [25, 30]
for name, age in zip(names, ages):
print(f"{name}: {age}")
prices = dict(zip(["قلم", "كتاب"], [3, 15]))
print(prices) # {'قلم': 3, 'كتاب': 15}أهم المعاملات
| المعامل | الوظيفة |
|---|---|
| *iterables | عدد حر من الكائنات القابلة للتكرار يتم دمجها بالتوازي |
| strict (Python 3.10+) | إن كان True يرمي ValueError عند اختلاف الأطوال بدل التوقّف الصامت عند الأقصر |
💡 نصائح عملية
- حوّلها لقائمة أزواج بـ list(zip(a, b)) أو لقاموس مباشرة بـ dict(zip(keys, values))
- استخدم strict=True عندما يجب أن تتأكّد أن كل المتسلسلات بنفس الطول تمامًا
⚠️ أخطاء شائعة
- توقّع أن zip تكمل بأطول متسلسلة وتملأ الفراغ بـ None — هي تتوقّف عند الأقصر فقط
- استخدام strict على إصدار بايثون أقدم من 3.10 حيث لم يكن هذا المعامل موجودًا بعد
خصائص ذات صلة
🎓 تريد فهم الصورة الكاملة خطوة بخطوة؟ ابدأ من مسار PYTHON الكامل بالعربي.