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]

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

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

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

نظرات

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

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