كيفية استخدام دالة zip() في Python لدمج البيانات

تُعد الدالة zip() في بايثون أداة فعّالة لدمج العناصر القابلة للتكرار (مثل القوائم أو المجموعات) في عنصر قابل للتكرار واحد. يمكن أن تكون هذه الدالة مفيدة بشكل خاص عندما تحتاج إلى إقران عناصر من تسلسلات متعددة. في هذه المقالة، سنستكشف كيفية استخدام zip() لدمج البيانات بكفاءة.

ما هي الدالة zip()؟

تأخذ الدالة zip() عناصر قابلة للتكرار متعددة كوسائط وتعيد مُكررًا من العناصر المكررة. تحتوي كل عنصر مكرر على عناصر من الموضع المقابل للعناصر القابلة للتكرار المدخلة. وهذا مفيد لدمج البيانات من التسلسلات المتوازية.

الاستخدام الأساسي

فيما يلي مثال بسيط حول كيفية استخدام zip() لدمج قائمتين:

list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

الإخراج:

[(1, 'a'), (2, 'b'), (3, 'c')]

في هذا المثال، يتم دمج list1 وlist2 عنصريًا، مما يؤدي إلى إنشاء قائمة من العناصر المشتقة.

التعامل مع العناصر القابلة للتكرار ذات الأطوال المختلفة

إذا كانت العناصر القابلة للتكرار المدخلة ذات أطوال مختلفة، فإن zip() تتوقف عن إنشاء العناصر القابلة للتكرار عندما يتم استنفاد أقصر عنصر قابل للتكرار. إليك مثال:

list1 = [1, 2, 3, 4]
list2 = ['a', 'b', 'c']

zipped = zip(list1, list2)
print(list(zipped))

الإخراج:

[(1, 'a'), (2, 'b'), (3, 'c')]

لاحظ أن المجموعة التي تحتوي على '4' ليست مضمنة لأن list2 ليس لديها عنصر مماثل.

فك ضغط البيانات

يمكنك أيضًا استخدام zip() لفك ضغط قائمة من الثنائيات. يتضمن هذا فصل البيانات المجمعة إلى قوائم فردية:

zipped = [(1, 'a'), (2, 'b'), (3, 'c')]

list1, list2 = zip(*zipped)
print(list1)
print(list2)

الإخراج:

(1, 2, 3)
('a', 'b', 'c')

هنا، يتم استخدام عامل * لفك ضغط قائمة العناصر الثنائية، ويتم استخدام zip() لتجميع العناصر المقابلة مرة أخرى في عناصر ثنائية منفصلة.

التطبيقات العملية

غالبًا ما يتم استخدام الدالة zip() في السيناريوهات العملية مثل:

  • دمج البيانات من القوائم المتوازية، مثل الأسماء والأعمار.
  • إنشاء قواميس من قائمتين، حيث تحتوي إحدى القائمتين على المفاتيح وتحتوي القائمة الأخرى على القيم.
  • التكرار عبر قوائم متعددة بالتوازي في حلقة.

مثال: إنشاء قاموس

فيما يلي مثال لاستخدام zip() لإنشاء قاموس من قائمتين:

keys = ['name', 'age', 'city']
values = ['Alice', 30, 'New York']

dictionary = dict(zip(keys, values))
print(dictionary)

الإخراج:

{'name': 'Alice', 'age': 30, 'city': 'New York'}

في هذا المثال، تقوم الدالة zip() بإقران كل مفتاح بالقيمة المقابلة له، ثم تقوم الدالة dict() بتحويل الأزواج إلى قاموس.

خاتمة

تُعد دالة zip() أداة متعددة الاستخدامات لدمج وإدارة البيانات في Python. سواء كنت تقوم بدمج القوائم أو فك ضغط البيانات أو إنشاء قواميس، فإن فهم كيفية استخدام zip() بشكل فعال يمكن أن يبسط الكود الخاص بك ويعزز مهاراتك في البرمجة.