التكرارات المستقلة في فهم القائمة
في بايثون، تسمح عمليات فهم القائمة بحلقات تكرار متعددة. خذ بعين الاعتبار المثال التالي:
[(x, y) for x in a for y in b]
حيث a و b عبارة عن تسلسلات. يؤدي هذا الفهم إلى إنشاء أزواج من العناصر من المنتج الديكارتي لـ a وb.
هل يمكن للمكررات أن تكون تابعة؟
هل يمكن لمكرر واحد في فهم القائمة أن يشير إلى آخر؟ الإجابة هي نعم، والكود التالي يوضح ذلك:
[x for x in a for a in b]
في هذا الفهم، يصبح مكرر الحلقة الخارجية a هو المكرر للحلقة الداخلية. يؤدي هذا إلى تسوية القائمة المتداخلة بشكل فعال.
مثال
إذا كان لدينا قائمة متداخلة a:a = [[1, 2], [3, 4]]
سيؤدي فهم القائمة التالية إلى تسطيحها في قائمة واحدة:
[x for x in a for a in b]
النتيجة:[1, 2, 3, 4][1, 2, 3, 4]
حل بديل باستخدام المولدات
في كود Python المقدم، يتم تخزين النص كجمل، وتتمثل المهمة في استخراج قائمة واحدة من الكلمات. إليك كيفية تحقيق ذلك باستخدام المولد:text = (("Hi", "Steve!"), ("What's", "up?"))
gen = (word for sentence in text for word in sentence)
ينتج متغير الجيل الآن قائمة الكلمات المسطحة:for word in gen:
print(word)
الإخراج: مرحبًا ستيف! ما أعلى؟
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3