پرسش

تفاوت‌های لیست کامپرهنشن و مپ در پایتون

List Comprehension vs Map

لیست کامپرهنشن (List Comprehension) و مپ (Map) در پایتون چه تفاوت‌هایی با هم دارن؟ کدوم یکی برای استفاده بهتره و چرا؟

1403/06/06
پاسخ
رضا دولتی عاشق برنامه نویسی و هوش مصنوعی!
بیوگرافی رضا دولتی

خب، بیایم یه نگاهی به تفاوت‌های لیست کامپرهنشن و مپ بندازیم:

  1. لیست کامپرهنشن (List Comprehension):

- ساختار: [expression for item in iterable if condition]

- خوانایی: خیلی خوش‌خوان و واضح به نظر میاد.

- سرعت: معمولا یه کم سریع‌تر از مپ هست، مخصوصاً وقتی می‌خوایم کارای پیچیده‌تری انجام بدیم.

مثال:

numbers = [1, 2, 3, 4, 5]
squares = [x2 for x in numbers]

- تو این مثال، squares لیستی از مربع‌های اعداد numbers رو نشون میده.

  1. مپ (Map):

- ساختار: map(function, iterable)

- خوانایی: یه کم کمتر خوانا به نظر میاد، مخصوصاً برای تازه‌کارها.

- سرعت: ممکنه تو بعضی موارد که تابعش ساده است، کمی کندتر از لیست کامپرهنشن باشه.

مثال:

numbers = [1, 2, 3, 4, 5]
def square(x):
    return x2
squares = map(square, numbers)

- اینجا، squares یه آبجکت از نوع map هست که باید به لیست تبدیل بشه تا بتونی مقادیرش رو ببینی.

به طور خلاصه:

- اگر دنبال سادگی و خوانایی هستی، لیست کامپرهنشن گزینه بهتریه.

- اما اگر می‌خوای از توابع از پیش نوشته شده استفاده کنی یا با توابع ساده کار می‌کنی، مپ به دردت می‌خوره.

هر دو روش کار خودشونو انجام می‌دن و انتخاب بینشون بیشتر به سلیقه و نیاز پروژه‌ات بستگی داره.

پاسخ: 1403/06/06
آخرین آپدیت: 1403/08/12