Python – لیست کامپریهنشن (List Comprehension)

درک لیست کامپریهنشن (List Comprehension) در پایتون

لیست کامپریهنشن (List Comprehension) یک راه کوتاه‌تر و ساده‌تر برای ایجاد لیست‌های جدید بر اساس لیست‌های موجود است. با استفاده از این روش، می‌توانید یک لیست جدید با اعمال فیلترها و عملیات مختلف روی آیتم‌های یک لیست موجود ایجاد کنید.

1. ساختار اصلی لیست کامپریهنشن

ساختار لیست کامپریهنشن به صورت زیر است:

newlist = [expression for item in iterable if condition == True]
  • expression: عبارتی که روی هر آیتم اعمال می‌شود و نتیجه آن در لیست جدید قرار می‌گیرد.
  • item: هر عنصر در iterable (مثلاً لیست).
  • iterable: هر نوع آبجکتی که قابل تکرار باشد مانند لیست، مجموعه (set)، یا تاپل (tuple).
  • condition: شرطی که مشخص می‌کند آیا آیتم باید در لیست جدید قرار بگیرد یا خیر (اختیاری است).

2. مثال‌هایی از لیست کامپریهنشن

فیلتر کردن لیست بر اساس شرط

فرض کنید می‌خواهید لیستی از میوه‌هایی که در نامشان حرف “a” وجود دارد بسازید. بدون استفاده از لیست کامپریهنشن، این کار را به روش زیر انجام می‌دهید:

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []

for x in fruits:
    if "a" in x:
        newlist.append(x)

print(newlist)  # خروجی: ['apple', 'banana', 'mango']

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

newlist = [x for x in fruits if "a" in x]
print(newlist)  # خروجی: ['apple', 'banana', 'mango']

تغییر شکل آیتم‌ها در لیست

شما می‌توانید علاوه بر فیلتر کردن، آیتم‌های لیست را نیز تغییر دهید. به عنوان مثال، تبدیل همه آیتم‌ها به حروف بزرگ:

newlist = [x.upper() for x in fruits]
print(newlist)  # خروجی: ['APPLE', 'BANANA', 'CHERRY', 'KIWI', 'MANGO']

استفاده از شرط برای تغییر نتیجه

می‌توانید شرط‌های پیچیده‌تری را در لیست کامپریهنشن اعمال کنید. برای مثال، اگر آیتم “banana” باشد، به جای آن “orange” را بازگردانید:

newlist = [x if x != "banana" else "orange" for x in fruits]
print(newlist)  # خروجی: ['apple', 'orange', 'cherry', 'kiwi', 'mango']

3. حذف شرط و تولید لیست جدید

اگر بخواهید تمام آیتم‌های لیست اصلی را بدون هیچ گونه فیلتری به لیست جدید منتقل کنید:

newlist = [x for x in fruits]
print(newlist)  # خروجی: ['apple', 'banana', 'cherry', 'kiwi', 'mango']

4. ایجاد لیست با استفاده از range()

می‌توانید از تابع range() برای تولید یک لیست عددی استفاده کنید:

newlist = [x for x in range(10)]
print(newlist)  # خروجی: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

و یا فقط اعداد کمتر از 5 را در لیست جدید قرار دهید:

newlist = [x for x in range(10) if x < 5]
print(newlist)  # خروجی: [0, 1, 2, 3, 4]

لیست کامپریهنشن یک ابزار قدرتمند برای کار با لیست‌ها است که باعث کاهش حجم کد و افزایش خوانایی آن می‌شود.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - رویدادها (Events)

JavaScript – رویدادها (Events)

رویدادهای HTML رویدادها در HTML، “اتفاقاتی” هستند که برای عناصر HTML رخ می‌دهند. این اتفاقات می‌توانند ناشی از کار...

بیشتر بخوانید
JavaScript - سازنده‌های شیء (Object Constructors)

JavaScript – سازنده‌های شیء (Object Constructors)

ساخت آبجکت با تابع سازنده (Object Constructor Function) برای ساخت چندین آبجکت مشابه، از تابع سازنده استفاده می‌شود. این...

بیشتر بخوانید
JavaScript - نمایش شیء (Object Display)

JavaScript – نمایش شیء (Object Display)

نحوه نمایش آبجکت‌ها در جاوااسکریپت هنگام نمایش یک آبجکت جاوااسکریپت به صورت مستقیم، خروجی معمولاً به شکل [object Object]...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.