List Comprehension در پایتون یکی از ابزارهای قدرتمند و خوانا برای ایجاد لیستهای جدید از دادههای موجود هست. این ساختار به شما امکان میده تا با استفاده از یک عبارت ساده، لیستهایی رو ایجاد کنین که میتوانند شامل عملیاتهای ریاضی، فیلترها و دیگر توابع باشن. List Comprehension به دلیل سادگی و خوانایی بالایی که داره، به یکی از محبوبترین ویژگیهای زبان پایتون تبدیل شده .
ساختار اصلی List Comprehension:
ساختار اصلی List Comprehension شامل براکتها است که درون آنها یک عبارت و یک حلقه for قرار میگیره. این حلقه for بر روی یک دنباله از دادهها اجرا میشود و عبارت موجود در List Comprehension میتونه شامل شرطها و توابع دیگه هم باشه. به عنوان مثال:
# List Comprehension برای محاسبه مربع اعدادsquares = [x**2 for x in range(10)]
در این مثال، x**2 عبارتی است که مربع هر عدد را محاسبه میکند و for x in range(10) یک حلقه for است که بر روی اعداد 0 تا 9 اجرا میشه.
مزایای استفاده از List Comprehension:
یکی از بزرگترین مزایای استفاده از List Comprehension، کاهش تعداد خطوط کد و افزایش خوانایی است. به جای استفاده از حلقههای معمولی و اضافه کردن عناصر به لیست به صورت دستی، میتونید با یک خط کد، همون کار رو انجام بدید. این امر باعث میشه کد شما تمیزتر و سادهتر باشد.
موارد استفاده از List Comprehension:
List Comprehension میتواند در موارد مختلفی مورد استفاده قرار گیرد، از جمله:
- ایجاد لیستهای جدید از دادههای موجود
- فیلتر کردن لیستها بر اساس شرط
- اعمال توابع به تمام عناصر یک لیست
- ترکیب چندین لیست به یک لیست جدید
نکات مهم در استفاده از List Comprehension:
هرچند List Comprehension ابزاری قدرتمند است، اما مهم است که در استفاده از آن زیادهروی نشود. اگر عبارتهای List Comprehension بیش از حد پیچیده شوند، ممکن است خوانایی کد کاهش یابد و در این صورت، استفاده از حلقههای معمولی توصیه میشود. همچنین، در مواردی که عملیاتهای سنگین محاسباتی دارید، استفاده از حلقههای معمولی ممکن است از نظر عملکرد بهتر باشد.
حالا بریم مثال ببینیم خوب جا بیافته:
البته، در اینجا مثالهایی از کد بدون استفاده از List Comprehension و همان کد با استفاده از List Comprehension آورده شده است:
1. ایجاد لیست از کاراکترهای یک رشته:# بدون List Comprehensionchars = []for char in 'سلام دنیا': chars.append(char)
# با استفاده از List Comprehensionchars = [char for char in 'سلام دنیا']
2. تبدیل دمای سلسیوس به فارنهایت:# بدون List Comprehensioncelsius = [0, 10, 20.1, 34.5]fahrenheit = []for temp in celsius: fahrenheit.append((9/5) * temp + 32)
# با استفاده از List Comprehensionfahrenheit = [((9/5) * temp + 32) for temp in celsius]
3. ایجاد لیستی از اعداد که توان دوم آنها کمتر از 100 است:# بدون List Comprehensionsquares = []for x in range(10): if x**2 < 100: squares.append(x**2)
# با استفاده از List Comprehensionsquares = [x**2 for x in range(10) if x**2 < 100]
4. حذف حروف صدادار از یک رشته:# بدون List Comprehensionsentence = "برنامه نویسی با پایتون لذت بخش است"consonants = ''for char in sentence: if char not in 'aeiou': consonants += char
# با استفاده از List Comprehensionconsonants = ''.join([char for char in sentence if char not in 'aeiou'])
5. ایجاد لیستی از اعداد اول:# بدون List Comprehensionprimes = []for possiblePrime in range(2, 50): isPrime = True for num in range(2, possiblePrime): if possiblePrime % num == 0: isPrime = False break if isPrime: primes.append(possiblePrime)
# با استفاده از List Comprehensionprimes = [x for x in range(2, 50) if all(x % y != 0 for y in range(2, x))]
6. ترکیب دو لیست و ایجاد لیستی از تاپلها:# بدون List Comprehensionlist1 = [1, 2, 3]list2 = ['a', 'b', 'c']combined = []for num in list1: for letter in list2: if num != letter: combined.append((num, letter))
# با استفاده از List Comprehensioncombined = [(num, letter) for num in list1 for letter in list2 if num != letter]
این مثالها نشان میدهند که چگونه میتوان با استفاده از List Comprehension، کدهای مختصر و خوانا نوشت. اما به یاد داشته باشید که در مواردی که عبارتهای List Comprehension بیش از حد پیچیده میشوند، استفاده از حلقههای معمولی ممکن است از نظر خوانایی و عملکرد بهتر باشد.
اگر فکر می کنید که ما چیزی را در این مقاله جا انداخته ایم و یا در مورد پست های بعدی ایده و یا نظری دارید، خوشحال می شویم که این مورد را با ما در میان بگذارید. تنها کافیست روی دکمه زیر کلیک کنید و پیشنهاد خود را ارسال کنید.