درسنامه جامع List Comprehension در پایتون
پایتون یکی از زبانهای برنامهنویسی محبوب و قدرتمند امروزی است که به سادگی، خوانایی و کاربرد گستردهاش شناخته میشود. یکی از ساختارهای دادهی پرکاربرد در پایتون، لیست (List)ها هستند که مجموعهای از عناصر قابل تغییر و مرتبشده را نگهداری میکنند. برای کار با لیستها، پایتون ابزارهای متنوعی فراهم کرده و یکی از قدرتمندترین آنها، لیست کامپریهنشن (List Comprehension) است. لیست کامپریهنشنها این امکان را میدهند که تنها با یک خط کد، لیستهای جدیدی بر اساس لیستهای موجود یا سایر ساختارهای قابل پیمایش (iterables) بسازیم. این قابلیت نهتنها کدنویسی را سریعتر میکند، بلکه خوانایی کد را نیز بالا میبرد و باعث میشود منطق ساخت لیست در همانجا که استفاده میشود، قابلمشاهده باشد.
در این درسنامه آموزشی میخواهیم List Comprehension در پایتون را یاد بگیریم…
مقدمه: List Comprehension چیست؟
لیست کامپریهنشن (List comprehension) یک روش خلاصهنویسی برای ساخت لیستهاست. به جای استفاده از حلقههای for طولانی، میتونیم فقط در یک خط کد، لیست مورد نظر رو بسازیم.
مثلا:
ساختار کلی List Comprehension
expression: چیزی که میخوایم به لیست نهایی اضافه کنیم.
item: هر عنصر از
iterable(مثل لیست، رنج، رشته و …)condition: شرطی اختیاریه که فیلتر میکنه چه آیتمهایی وارد لیست بشن.
مثالهای پایه
1. ساخت لیست اعداد ۰ تا ۹:
2. مربع اعداد:
3. اعداد زوج:
4. حروف بزرگ یک رشته:
کاربردهای جالب و کمی پیشرفتهتر
5. فیلتر کردن لیست:
6. استفاده ترکیبی با تابع:
7. تبدیل رشته به اعداد:
ترکیب تو در تو (Nested)
8. لیست دوبعدی مسطحسازی:
مثل for row in matrix: و بعد for num in row:
9. ضرب دکارتی (Cartesian Product):
مثالهای کاربردی واقعی برای برنامهنویسها
10. گرفتن همه فایلهایی با پسوند .py:
11. پاک کردن کاراکترهای خاص:
12. معکوس کردن رشتهها در لیست:
نکات مهم
خوانایی مهمه: اگر list comprehension بیش از حد پیچیده شد، بهتره از حلقههای معمولی استفاده کنی.
فقط برای ساخت لیستها نیست: ساختار مشابه برای
set,dict,generatorهم هست.
سخنان پایانی
در این مقاله جامع با List Comprehension در پایتون آشنا شدیم. اگر خواستین بیشتر و عمیقتر پایتون یاد بگیرین میتونید دوره کامل پایتون رو از همین وبسایت یعنی آی کد آکادمی چک بکنید. در پایین چند تا تمرین براتون نوشتم که حالا خودتون رو به چالش بکشید و حلشون کنید:
لیستی از اعداد ۱ تا ۲۰ بساز که فقط مضرب ۳ باشند.
از لیست
[2, 3, 4]لیستی بساز که شامل توان دوم آنها باشد.از رشته
"Python3.11"فقط حروف الفبا رو استخراج کن.لیستی از لیستها بده و اون رو مسطح کن.
از لیستی مثل
["apple", "banana", "mango"]، فقط مواردی رو بگیر که شامل حرفaهستند.
دیدگاهتان را بنویسید