تبلیغات

دوره H پایتون – فصل 5: نوع‌های دیگر – درس 5: درک لیست

دوره H پایتون

دوره H برنامه نویسی پایتون
فصل پنجم: نوع‌های دیگر
درس پنجم: درک لیست (List Comprehensions) در پایتون


دوره‌های H
دوره‌ی H، یک دوره‌ی فشرده می‌باشد که برای زبان‌های برنامه‌نویسی مختلفی در نظر گرفته شده است و در آن بصورت خلاصه و مفید، به بیان مهم‌ترین مباحث هر زبان برنامه‌نویسی پرداخته می‌شود تا بتوان در کوتاه‌ترین زمان ممکن، به ابتدایی‌ترین موارد موجود در یک زبان برنامه نویسی مسلط شد. برای مطالعه بیشتر و لیست تمامی دروس این دوره کلیک کنید...

List Comprehensions (درک لیست) در پیاتون، روشی ساده و مفید برای ایجاد سریع‌تر لیست‌هایی است که محتوای آنها، از یک قانون ساده پیروی می‌کنند. برای مثال:

خروجی:

در اینجا یک range پنج عضوی ایجاد کردیم که هرکدام از اعضای آن را یک i در نظر می‌گیریم، سپس هر i را به توان سه رسیده و به لیست اضافه می‌شود. بنابراین، این range که پنج عضو آن 0 تا خود 4 است، هرکدام به توان 3 رسیده و سپس در لیست اضافه می‌شوند.

نکته
List Comprehensions، از نشانه‌گذاری set-builder در ریاضیات الهام گرفته است.

شرط if در List Comprehensions

یک «List Comprehensions»، می‌تواند شامل دستور if نیز باشد. به این صورت که این شرط، برروی اعضا بررسی شده و در صورت True بودن، آن عضو به لیست اضافه می‌شود. برای مثال:

خروجی:

در اینجا یک range ده عضوی ایجاد کردیم که از 0 تا خود 9 می‌باشد. سپس هر عضو به توان دو رسیده و در صورتی که پس از رسیدن به توان 2، بر دو بخش‌پذیر باشد (زوج باشد)، مقدار به توان دوی آن، به لیست اضافه می‌شود؛ که در اینجا، 4 عضو از ده عضو به لیست اضافه شده است.

توجه داشته باشید که مقدار قبل از for به لیست اضافه می‌شود و این هیچ ربطی به توان دوی داخل شرط ندارد.

خطای MemoryError

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

خروجی:

نکته
این مشکل، توسط جنراتورها (generators) حل شده است که در دروس بعدی به آن خواهیم پرداخت.

درس بعدیدرس قبلی
تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس و دانشجوی ارشد رشته شبیه‌ساز هوشمند - در حال نوشتن یه رمان (اگه خدا بخواد و تموم شه ?)

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه