list comprehensions

درک مطلب ها یک راه مفید برای ایجاد سریع لیست هایی است که محتویات آنها به یک قاعده ساده احتیاج دارند.
به عنوان مثال، ما می توانیم موارد زیر را انجام دهیم:

# a list comprehension
cubes = [i**3 for i in range(5)]

print(cubes)

خروجی:

>>>
[0, 1, 8, 27, 64]
>>>

نکته:فراخوانی فهرست توسط نماد set-builder در ریاضیات الهام گرفته شده است.

درک مطلب نیز می تواند شامل یک عبارت if باشد تا یک شرط را برای مقادیر موجود در لیست اجرا کند.
مثال:

evens=[i**2 for i in range(10) if i**2 % 2 == 0]

print(evens)

خروجی:

>>>
[0, 4, 16, 36, 64]
>>>

تلاش برای ایجاد یک لیست در محدوده بسیار گسترده باعث MemoryError خواهد شد.
این کد یک مثال را نشان می دهد که درک مطلب از حافظه خارج می شود.

even = [2*i for i in range(10**100)]

خروجی:

>>>
MemoryError
>>>

نکته:این مسئله توسط ژنراتورها حل شده است که در ماژول بعدی پوشش داده شده است.


مشخصات

آخرین ارسال ها

آخرین جستجو ها