عرض مشاركة واحدة
قديم 01-03-2019, 09:47 AM   #1
تاريخ التسجيل: Feb 2019
الدولة: قلب ابي
العمر: 31
المشاركات: 1,006
التقييم: 10
تاريخ التسجيل: Feb 2019
الدولة: قلب ابي
العمر: 31
المشاركات: 1,006
التقييم: 10
افتراضي حلقات التكرار المتشعبة في تعابير List Comprehension

حلقات التكرار المتشعبة في تعابير List Comprehension
يمكن استعمال حلقات التكرار المتشعبة لإجراء عدِّة عمليات دوران متداخلة في برامجنا.
سننظر في هذا القسم إلى حلقة for متشعبة وسنحاول تحويلها إلى تعبير List comprehension.
هذه الشيفرة ستُنشِئ قائمةً جديدةً بالدوران على قائمتين وبإجراء عمليات رياضية عليها:

my_list = []

for x in [20, 40, 60]:
for y in [2, 4, 6]:
my_list.append(x * y)

print(my_list)
سنحصل على الناتج الآتي عند تشغيل البرنامج:

[40, 80, 120, 80, 160, 240, 120, 240, 360]
الشيفرة السابقة تضرب العناصر الموجودة في أوّل قائمة بالعناصر الموجودة في ثاني قائمة في كل دورة.
لتحويل ما سبق إلى تعبير List comprehension، وذلك باختصار السطرين الموجودين في الشيفرة السابقة وتحويلهما إلى سطرٍ وحيدٍ، الذي يبدأ بإجراء العملية x*y، ثم ستلي هذه العملية حلقة for الخارجية، ثم يليها حلقة for الداخلية؛ وسنضيف تعبير print()‎ للتأكد أنَّ ناتج القائمة الجديدة يُطابِق ناتج البرنامج الذي فيه حلقتين متداخلتين:

my_list = [x * y for x in [20, 40, 60] for y in [2, 4, 6]]
print(my_list)
الناتج:

[40, 80, 120, 80, 160, 240, 120, 240, 360]
أدى استعمال تعبير List Comprehension في المثال السابق إلى تبسيط حلقتَي for لتصبحا سطرًا وحيدًا، لكن مع إنشاء نفس القائمة والتي ستُسنَد إلى المتغير my_list.
توفِّر لنا تعابير List Comprehension طريقةً بسيطةً لإنشاء القوائم، مما يسمح لنا باختصار عدِّة أسطر إلى سطرٍ وحيد. لكن من المهم أن تبقي في ذهنك أنَّ سهولة قراءة الشيفرة لها الأولوية دومًا، لذا إذا أصبحتَ تعابير List Comprehension طويلةً جدًا ومعقدة، فمن الأفضل حينها تحويلها إلى حلقات تكرار عادية.


تسمح تعابير List Comprehension لنا بتحويل قائمة أو أي نوع من البيانات المتسلسلة إلى سلسلةٍ جديدة، ولها شكلٌ بسيطٌ يُقلِّل عدد الأسطر التي نكتبها.
تتبع تعابير List Comprehension شكلًا رياضيًا معيّنًا، لذا قد يجدها المبرمجون أولو الخلفية الرياضية سهلة الفهم.
وصحيحٌ أنَّ تعابير List Comprehension تختصر الشيفرةـ لكن من المهم جعل سهولة قراءة الشيفرة من أولوياتنا، وحاول تجنّب الأسطر الطويلة لتسهيل قراءة الشيفرة.

مهرة النجدية غير متواجد حالياً   اقتباس