آموزش پایتون

مدیریت فایل

درک لیست

List Comprehension یا درک لیست

هنگامی که می خواهید یک لیست جدید بر اساس مقادیر یک لیست موجود ایجاد کنید، درک لیست یا List Comprehension، نوع نوشتار کوتاه تری برای این کار ارائه می دهد.
مثال:
بر اساس لیستی از میوه ها، شما یک لیست جدید می خواهید که فقط شامل میوه هایی با حرف “a” باشد.

مثال

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

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

print(newlist)
				
			

با درک لیست یا List Comprehension می توانید همه این کارها را تنها با یک خط کد انجام دهید:

مثال

				
					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 == True]
				
			
مقدار بازگشتی یک لیست جدید است که لیست قدیمی را بدون تغییر باقی می گذارد.

شرط یا condition

این شرط مانند فیلتری است که فقط مواردی را می پذیرد که True ارزیابی می شوند.

مثال

چاپ مواردی که “apple” نیستند در یک لیست جدید:
				
					newlist = [x for x in fruits if x != "apple"]
				
			

شرط if x != "apple" برای همه عناصر به غیر از “apple” مقدار True را برمی‌گردد، و باعث می‌شود فهرست جدید شامل همه میوه‌ها به جز “apple” باشد.

شرط اختیاری است و می توان آن را حذف کرد:

مثال

بدون استفاده از if:
				
					newlist = [x for x in fruits]

				
			

ایجاد تکرار

ایجاد تکرار می تواند در هر مجموعه تکرار پذیری انجام شود، مانند List، Tuple، Set و غیره.

مثال

می توانید از تابع range() برای ایجاد یک تکرار استفاده کنید:
				
					newlist = [x for x in range(10)]
				
			

مثال مشابه، اما با یک شرط:

مثال

فقط اعداد کمتر از 5 را بپذیرید:

				
					newlist = [x for x in range(10) if x < 5]
				
			

Expression یا عبارت

عبارت یا Expression آیتم فعلی در تکرار است، که می توانید قبل از اینکه مانند یک آیتم لیست در لیست جدید ثبت شود، آن را دستکاری کنید:

مثال

مقادیر موجود در لیست جدید را با حروف بزرگ تنظیم کنید:
				
					newlist = [x.upper() for x in fruits]
				
			
شما می توانید نتیجه را هر چیزی که نیاز دارید تنظیم کنید:

مثال

همه مقادیر موجود در لیست جدید را روی “hello” تنظیم کنید:
				
					newlist = ['hello' for x in fruits]
				
			
عبارت همچنین می تواند شامل شرایطی باشد، نه مانند یک فیلتر، بلکه به عنوان راهی برای دستکاری نتیجه:

مثال

به جای “banana” آیتم “orange” را برگردانید:

				
					newlist = [x if x != "banana" else "orange" for x in fruits]
				
			

عبارت یا Expression در مثال بالا می گوید:

اگر “banana” نیست آیتم را برگردان، اگر “banana” هست “orange” را برگردان.

آموزش پایتون

مدیریت فایل