"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن للتفريغ أن يجعل قوائم الطباعة في بايثون أكثر بايثونية؟

كيف يمكن للتفريغ أن يجعل قوائم الطباعة في بايثون أكثر بايثونية؟

تم النشر بتاريخ 2024-11-25
تصفح:948

How Can Unpacking Make Printing Lists in Python More Pythonic?

القوائم القابلة للطباعة: استكشاف الطباعة البايثونية

عند العمل مع القوائم في بايثون، غالبًا ما تمثل طباعة كل عنصر تحديًا. قد تبدو الطرق التقليدية مثل استخدام "\n".join() مع Map() أو التكرار عبر القائمة باستخدام حلقة for مرهقة. تبحث هذه المقالة في حل أنيق باستخدام التفريغ لتحقيق طريقة موجزة وبايثونية لطباعة عناصر القائمة.

الكشف عن قوة التفريغ

في Python 3، تسمح عبارة print () بالتفريغ، يشار إليها بواسطة النجمة (*). تمكننا هذه الميزة من طباعة كائنات متعددة في وقت واحد عن طريق "تفريغها" من متغير واحد، مما يلغي بشكل فعال الحاجة إلى حلقات صريحة أو عمليات الانضمام.

myList = [Person("Foo"), Person("Bar")]
print(*myList, sep='\n')

باستخدام العلامة النجمية، يتم توسيع عناصر myList إلى وسيطات فردية، مما يؤدي إلى الإخراج المطلوب:

Foo
Bar

تضمن الوسيطة sep='\n' طباعة كل عنصر على سطر جديد. تجسد تقنية التفريغ هذه فلسفة بايثون المتمثلة في البساطة والإيجاز.

استكشاف بدائل لبيثون 2

بالنسبة لمستخدمي بايثون 2، يفتقر بيان الطباعة إلى القدرة على التفريغ. ومع ذلك، فإن استيراد وظيفة print_function من الوحدة future يسمح باعتماد بناء جملة الطباعة Python 3. وبدلاً من ذلك، يمكن استخدام حلقة for مباشرة لطباعة كل عنصر:

for p in myList:
    print p

فهم فهم القائمة

على الرغم من أنها ليست موجزة مثل التفريغ، إلا أن فهم القائمة يوفر أداة قوية لمعالجة القوائم. يوفر الجمع بين فهم القائمة مع "\n".join() بديلاً قابلاً للقراءة للتفريغ:

print '\n'.join(str(p) for p in myList)

هذا النهج يحول كل عنصر قائمة إلى تمثيل سلسلة باستخدام str() ويربطها بأسطر جديدة. على الرغم من أنها ليست موجزة مثل التفريغ، إلا أن فهم القائمة يظل أسلوبًا فعالاً ومتعدد الاستخدامات للعمل مع القوائم.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3