درک مفاهیم
درک مفاهیم
یکی از ویژگی های مورد علاقه من در پایتون، درک لیست است. آنها ممکن است در ابتدا کمی محرمانه به نظر برسند، اما وقتی آنها را تجزیه می کنید، آنها هستند نکته کلیدی برای درک درک لیست این است که آنها فقط برای حلقه های یک مجموعه هستند اما در مالیات همگام کوتاه تر و فشرده تر بیان می شوند. این گاهی اوقات به عنوان قند نحوی نامیده می شود – یک میانبر کوچک برای عملکردی که اغلب استفاده می شود که زندگی ما را به عنوان کدنویس پایتون می سازد آسان تر. درک لیست زیر را به عنوان مثال در نظر بگیرید:>>> squares = [x * x for x in range(10)]لیستی از تمام اعداد مربع اعداد صحیح از صفر تا نه را محاسبه می کند:>>> squares در واقع یک ساختار بسیار ساده است. [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] اگر می خواهید همان لیست را با استفاده از یک حلقه for ساده بسازید، احتمالاً می توانید چیزی شبیه به این بنویسید>>> for x in range(10): >>> squares = [] … squares.append(x * x)این یک حلقه کاملاً ساده است، درست است؟
اگر به عقب برگردید و مثال درک لیست را با نسخه for-loop مقایسه کنید،
این کار را خواهید کرد نقاط مشترک را شناسایی کنید و در نهایت الگوهایی پدیدار شوند. توسط با تعمیم برخی از ساختارهای رایج در اینجا، در نهایت به پایان خواهید رسید با یک قالب مشابه زیر:”الگو” درک لیست بالا معادل حلقه ساده زیر است:values = [] values = [expression for item in collection] values.append(expression)در اینجا، ابتدا یک نمونه لیست جدید برای دریافت مقادیر خروجی تنظیم می کنیم. سپس، روی همه موارد در ظرف تکرار می کنیم و هر کدام را تبدیل می کنیم از آنها با یک عبارت دلخواه و سپس اضافه کردن فرد for item in collection: این یک “الگوی برش کوکی” است که می توانید برای بسیاری از حلقه های for-loop اعمال کنید به منظور تبدیل آنها به درک لیست و بالعکس. نتایج به لیست خروجی اکنون، یک افزوده مفید دیگر وجود دارد که باید به این صفحه قالب اضافه کنیم، و آن فیلتر کردن عناصر با شرایط است. درک لیست می تواند مقادیر را بر اساس برخی شرایط دلخواه فیلتر کند که تصمیم می گیرد آیا مقدار حاصل بخشی از آن شود یا خیر. لیست خروجی در اینجا یک مثال است:if x % 2 == 0]این درک لیست فهرستی از مربع های همه زوج ها را محاسبه می کند اعداد صحیح از صفر تا نه عملگر مدول (%) استفاده شده در اینجا برمی گردد باقی مانده پس از تقسیم یک عدد به عدد دیگر.>>> even_squares = [x * x for x in range(10)
قوانین ارسال دیدگاه در سایت