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]
لیست کامپریهنشن یک ابزار قدرتمند برای کار با لیستها است که باعث کاهش حجم کد و افزایش خوانایی آن میشود.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام