لیست ها - فهرست سازی فشرده در پایتون (List Comprehension)
فهرست سازی فشرده (List Comprehension) در پایتون روشی کوتاه و قدرتمند برای ساخت یک لیست (List) جدید از روی لیست موجود است. این روش کد را ساده تر و خواناتر می کند و امکان استفاده از شرط ها و تغییر مقادیر را فراهم می آورد.
مقایسه با حلقه for معمولی
بدون استفاده از فهرست سازی فشرده، باید از حلقه for
و شرط ها برای ایجاد لیست جدید استفاده کنید:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
با استفاده از فهرست سازی فشرده، همان کد در یک خط نوشته می شود:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)
سینتکس کلی
ساختار فهرست سازی فشرده به شکل زیر است:
newlist = [expression for item in iterable if condition]
در این ساختار، expression نتیجه نهایی، iterable منبع داده و condition فیلتر اختیاری است.
استفاده از شرط (Condition)
می توانید آیتم ها را فیلتر کنید. مثلاً همه موارد به جز "apple":
newlist = [x for x in fruits if x != "apple"]
نکته: وجود شرط اختیاری است و می توانید آن را حذف کنید.
استفاده از Iterable متفاوت
هر نوع iterable مانند لیست، تاپل یا خروجی range()
قابل استفاده است:
newlist = [x for x in range(10) if x < 5]
کار با Expression
با استفاده از expression می توانید مقدار خروجی را تغییر دهید:
# حروف بزرگ
newlist = [x.upper() for x in fruits]
# مقدار ثابت
newlist = ['hello' for x in fruits]
# جایگزینی شرطی
newlist = [x if x != "banana" else "orange" for x in fruits]
ادامه یادگیری
برای یادگیری بیشتر می توانید به بخش حلقه در لیست ها بازگردید یا به بخش مرتب سازی لیست ها بروید.