• 0

كيف أدور حول حلقتين في نفس الوقت في بايثون؟

أريد أن أكتب حلقة تكرار تدور حول قائمتين معا في نفس الوقت، أي بطريقة مشابهة لهذه:

for i in range(len(Latitudes):
  Lat,Long=(Latitudes[i],Longitudes[i])

فهل هذا ممكن في لغة بايثون؟ وكيف يمكنني فعل ذلك؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

يوجد العديد من الطرق لفعل ذلك في بايثون لكن أشهرها هي عن طريق استخدام الدالة المدمجة zip حيث سنمرر لحلقة التكرار القائمتين lat وlong (مثلا) كالتالي:

for lat, long in zip(Latitudes, Longitudes):
    print lat, long

والطريقة الشهيرة الثانية لفعل ذلك هي عن طريق استخدام حلقة تكرار map كما في المثال التالي:

>>> a
[1, 2, 3]
>>> b
[4, 5, 6]
>>> for i,j in map(None,a,b):
    ...   print i,j
    ...
1 4
2 5
3 6

الفرق بين الطريقتين أنه في zip يجب أن يكون طول القائمتين متساويين على عكس map، لتفهم أكثر أنظر إلى المثالين التاليين:

>>> a
[1, 2, 3, 9]
>>> b
[4, 5, 6]
>>> for i,j in zip(a,b):
    ...   print i,j
    ...
1 4
2 5
3 6

وهذا المثال:

>>> for i,j in map(None,a,b):
    ...   print i,j
    ...

    1 4
    2 5
    3 6
    9 None

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن