List Comprehensions در پایتون، یک روش سریع و موثر برای ایجاد لیستها از طریق اعمال عملیات و فیلترها بر روی تکرارپذیرها (iterables) است. این ویژگی به برنامهنویسان اجازه میدهد تا کدهایی که برای ایجاد لیستها نیاز به حلقههای چندگانه یا شرطهای پیچیده دارند را، به صورت خلاصهتر و خواناتر بنویسند.
ساختار ابتدایی List Comprehensions:
[expression for item in iterable if condition]
- expression: عبارتی که مقدار جدیدی را که در لیست نهایی قرار میگیرد، تولید میکند. این میتواند عملیاتی روی
item
باشد. - item: متغیری که نماینده هر عضو در
iterable
است. - iterable: هر شیء تکرارپذیری که میتواند شامل لیست، تاپل، مجموعه و غیره باشد.
- condition: شرطی اختیاری که تعیین میکند کدام
item
ها باید در لیست نهایی گنجانده شوند.
مثالهایی از List Comprehensions:
مثال ۱: ایجاد لیست اعداد مربع
squares = [x**2 for x in range(10)]
print(squares)
# خروجی: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
مثال ۲: فیلتر کردن لیست برای یافتن اعداد زوج
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers)
# خروجی: [0, 2, 4, 6, 8]
مثال ۳: ترکیب دو لیست با استفاده از List Comprehensions
list1 = [1, 2, 3]
list2 = [4, 5, 6]
combined = [(x, y) for x in list1 for y in list2]
print(combined)
# خروجی: [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
مثال ۴: اعمال یک تابع به هر عنصر
names = ["Alice", "Bob", "Charlie"]
lengths = [len(name) for name in names]
print(lengths)
# خروجی: [5, 3, 7]
مزایای استفاده از List Comprehensions:
- کارآمدی: از نظر زمان اجرا معمولاً سریعتر از حلقههای معمولی هستند.
- خوانایی: کد نوشته شده سادهتر و خواناتر است، به خصوص برای بیان عملیات ساده.
- کاهش کد: اجازه میدهد عملیاتی که ممکن است نیاز به چندین خط کد دا
شته باشند را در یک خط بنویسید.
با این حال، باید توجه داشت که در مواردی که عملیات تبدیل شده بیش از حد پیچیده میشود، استفاده از حلقههای معمولی برای حفظ خوانایی کد توصیه میشود.
Responses