List comprehension

List comprehension یک راه ساده برای ایجاد لیست می‌باشد. همانطور که در درس‌های قبل توضیح داده شد، یک لیست را می‌توان به روش‌های مختلف ایجاد کرد. یا به صورت دستی :

list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

یا با استفاده از حلقه‌ها:

numbers = []

for i in range(0, 11):
    numbers.append(i)

البته روش بالا در صورتی کاربرد دارد که نوع داده‌هایی که در لیست قرار می‌گیرند از یک نوع باشند. روش دیگر برای ایجاد لیست‌ها استفاده از List comprehension است که دستور آن به صورت زیر است :

[expression for item in list]

برای درک دستور بهتر، دستور ابتدای درس را با استفاده از List comprehension پیاده سازی می‌کنیم:

list = [number for number in range(11)]

عبارت بالا را می‌توان به این صورت توضیح داد که لیست ما شامل اعدادی باشد که این اعداد در محدوده 0 تا 10 باشند. همانطور که مشاهده می‌کنید، می‌توان کدهایی که با استفاده از حلقه for ایجاد می‌شوند را در یک خط خلاصه کرد. کد بالا را می‌توان به صورت سفارشی‌تر هم نوشت. فرض کنید که می‌خواهید اعداد زوج بین 1 تا 10 را داخل لیست قرار دهید. برای این منظور می‌توان یک شرط هم به کد بالا اضافه کرد:

list = [number for number in range(11) if number % 2 == 0]

و یا حتی اگر بخواهید اعداد زوج بین 0 تا 10 را در عدد 10 ضرب کرده و در داخل لیست بگذارید، می‌توانید به صورت زیر عمل کنید:

list = [number * 10 for number in range(11) if number % 2 == 0]

همانطور که مشاهده می‌کنید استفاده از List comprehension برای ایجاد لیست‌ها هم ساده‌تر است و هم دارای انعطاف بیشتری می‌باشد.