تفاوتهای لیست کامپرهنشن و مپ در پایتون
List Comprehension vs Map
لیست کامپرهنشن (List Comprehension) و مپ (Map) در پایتون چه تفاوتهایی با هم دارن؟ کدوم یکی برای استفاده بهتره و چرا؟
خب، بیایم یه نگاهی به تفاوتهای لیست کامپرهنشن و مپ بندازیم:
- لیست کامپرهنشن (List Comprehension):
- ساختار: [expression for item in iterable if condition]
- خوانایی: خیلی خوشخوان و واضح به نظر میاد.
- سرعت: معمولا یه کم سریعتر از مپ هست، مخصوصاً وقتی میخوایم کارای پیچیدهتری انجام بدیم.
مثال:
numbers = [1, 2, 3, 4, 5]
squares = [x2 for x in numbers]
- تو این مثال، squares لیستی از مربعهای اعداد numbers رو نشون میده.
- مپ (Map):
- ساختار: map(function, iterable)
- خوانایی: یه کم کمتر خوانا به نظر میاد، مخصوصاً برای تازهکارها.
- سرعت: ممکنه تو بعضی موارد که تابعش ساده است، کمی کندتر از لیست کامپرهنشن باشه.
مثال:
numbers = [1, 2, 3, 4, 5] def square(x): return x2 squares = map(square, numbers)
- اینجا، squares یه آبجکت از نوع map هست که باید به لیست تبدیل بشه تا بتونی مقادیرش رو ببینی.
به طور خلاصه:
- اگر دنبال سادگی و خوانایی هستی، لیست کامپرهنشن گزینه بهتریه.
- اما اگر میخوای از توابع از پیش نوشته شده استفاده کنی یا با توابع ساده کار میکنی، مپ به دردت میخوره.
هر دو روش کار خودشونو انجام میدن و انتخاب بینشون بیشتر به سلیقه و نیاز پروژهات بستگی داره.