List Comprehension در پایتون چیست؟

  • محمد هادی حاجی حسینی
  • 1403/01/10
List Comprehension در پایتون چیست؟
List, Comprehension

خلاصه لیست در پایتون چیست؟

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 Comprehension
chars = []
for char in 'سلام دنیا':
    chars.append(char)

# با استفاده از List Comprehension
chars = [char for char in 'سلام دنیا']
2. تبدیل دمای سلسیوس به فارنهایت:
# بدون List Comprehension
celsius = [0, 10, 20.1, 34.5]
fahrenheit = []
for temp in celsius:
    fahrenheit.append((9/5) * temp + 32)

# با استفاده از List Comprehension
fahrenheit = [((9/5) * temp + 32) for temp in celsius]
3. ایجاد لیستی از اعداد که توان دوم آن‌ها کمتر از 100 است:
# بدون List Comprehension
squares = []
for x in range(10):
    if x**2 < 100:
        squares.append(x**2)

# با استفاده از List Comprehension
squares = [x**2 for x in range(10) if x**2 < 100]
4. حذف حروف صدادار از یک رشته:
# بدون List Comprehension
sentence = "برنامه نویسی با پایتون لذت بخش است"
consonants = ''
for char in sentence:
    if char not in 'aeiou':
        consonants += char

# با استفاده از List Comprehension
consonants = ''.join([char for char in sentence if char not in 'aeiou'])
5. ایجاد لیستی از اعداد اول:
# بدون List Comprehension
primes = []
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 Comprehension
primes = [x for x in range(2, 50) if all(x % y != 0 for y in range(2, x))]
6. ترکیب دو لیست و ایجاد لیستی از تاپل‌ها:
# بدون List Comprehension
list1 = [1, 2, 3]
list2 = ['a', 'b', 'c']
combined = []
for num in list1:
    for letter in list2:
        if num != letter:
            combined.append((num, letter))

# با استفاده از List Comprehension
combined = [(num, letter) for num in list1 for letter in list2 if num != letter]
این مثال‌ها نشان می‌دهند که چگونه می‌توان با استفاده از List Comprehension، کدهای مختصر و خوانا نوشت. اما به یاد داشته باشید که در مواردی که عبارت‌های List Comprehension بیش از حد پیچیده می‌شوند، استفاده از حلقه‌های معمولی ممکن است از نظر خوانایی و عملکرد بهتر باشد.

 

اگر فکر می کنید که ما چیزی را در این مقاله جا انداخته ایم و یا در مورد پست های بعدی ایده و یا نظری دارید، خوشحال می شویم که این مورد را با ما در میان بگذارید. تنها کافیست روی دکمه زیر کلیک کنید و پیشنهاد خود را ارسال کنید.

ارسال نظر :
این نام در کامنت ها و پروفایل عمومی شما نمایش داده خواهد شد.