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

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

TheBrain

السؤال

أريد الدوران حول متكررين في لغة بايثون، أي تنفيذ المتكرر الأول ومن ثم الثاني وهكذا وذلك لاستخدامها مع الملفات كما في المثال التالي:

file1 = open('file1', 'r')
file2 = open('file2', 'r')
for item in one_then_another(file1, file2):
    print item

فما الطريقة الصحيحة لفعل ذلك؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

يوجد عدة طرق في لغة بايثون لفعل ذلك، فيمكنك على سبيل المثال استخدام دالة 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'
رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...