اگر میخواستید در پایتون لیستی از اعداد 0 تا 10 داشته باشید از چه روشی استفاده میکردید؟
احتمالا از روش زیر:
>>> my_list = [] >>> for i in range(10): ... my_list.append(i) ... >>> my_list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
در این روش ابتدا یک متغییر از نوع لیست ایجاد میکنیم و سپس در یک حلقه هر کدام از اعداد 0 تا 9 را به لیست به کمک متد append اضافه میکنیم.
اما روش های ساده تر نیز به نام حلقه های درون خطی برای انجام اینکار وجود دارد:
>>> my_list = [i for i in range(10)] >>> my_list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
مساله به قدری ساده است که نیاز به هیچ توضیح اضافه ای ندارد و به سادگی با چند مثال قابل فهم است.
>>> [i * 2 for i in range(10)] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
حتی میتوانید از شروط درون خطی هم در حلقه های درون خطی استفاده نمایید:
>>> [i * 2 for i in range(10) if i % 2 == 0] [0, 4, 8, 12, 16]
>>> [i * 2 if i % 2 == 0 else i for i in range(10)] [0, 1, 4, 3, 8, 5, 12, 7, 16, 9]
یا حتی میتوانید حلقه های تو در تو ایجاد کنید:
>>> [i * j for i in range(4) for j in range(4)] [0, 0, 0, 0, 0, 1, 2, 3, 0, 2, 4, 6, 0, 3, 6, 9]
و یا به کمک حلقه های تو در تو لیست های چند بعدی ایجاد کنید:
>>> [[i * j for j in range(4)] for i in range(4)] [[0, 0, 0, 0], [0, 1, 2, 3], [0, 2, 4, 6], [0, 3, 6, 9]]
ضمن اینکه باید مراقب باشید که استفاده از حلقه های درون خطی و شروط درون خطی باعث طولانی شدن یک خط از کدهای شما نشود چون زیبایی کدها را از بین برده و باعث پیچیدگی و غیرقابل فهم شدن آنها خواهد شد.
با کمی تلاش بیشتر و نوشتن مثال های دیگر برای خودتان به راحتی میتوانید استفاده از حلقه های درون خطی را یاد بگیرید.