TheBrain نشر 24 يناير 2016 أرسل تقرير نشر 24 يناير 2016 أريد الدوران حول متكررين في لغة بايثون، أي تنفيذ المتكرر الأول ومن ثم الثاني وهكذا وذلك لاستخدامها مع الملفات كما في المثال التالي:file1 = open('file1', 'r') file2 = open('file2', 'r') for item in one_then_another(file1, file2): print item فما الطريقة الصحيحة لفعل ذلك؟ اقتباس
0 هشام رزق الله نشر 24 يناير 2016 أرسل تقرير نشر 24 يناير 2016 يوجد عدة طرق في لغة بايثون لفعل ذلك، فيمكنك على سبيل المثال استخدام دالة chain من وحدة itertools ومن ثم تمرير المتكررين كما في المثال التالي:from itertools import chain for line in chain(file1, file2): pass ويمكنك أيضا فعل نفس الشيء عن طريق استخدام دالة input من مكتبة fileinput كما في المثال التالي:import fileinput for line in fileinput.input(['file1', 'file2']): pass ويمكنك فعل ذلك أيضا عن طريق كتابة "مولد تعبير" بسيط كما في المثال التالي:for line in (l for f in (file1, file2) for l in f): # do something with line حيث أن بهذه الطريقة ستتمكن من وضع شرط معين على التعبير كالتالي:for line in (l for f in (file1, file2) for l in f if 'text' in l): # do something with line which contains 'text' اقتباس
السؤال
TheBrain
أريد الدوران حول متكررين في لغة بايثون، أي تنفيذ المتكرر الأول ومن ثم الثاني وهكذا وذلك لاستخدامها مع الملفات كما في المثال التالي:
فما الطريقة الصحيحة لفعل ذلك؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.