ساختارهای داده و الگوریتمهای پایه: لیست درک شده تو در تو - کوییز
لیست درک شده تو در تو
- صف (Queue)
- پشته (Stack)
- لیست پیوندی (Linked List)
- مجموعه (Set)
گزینه صحیح: 3
توضیح: لیست پیوندی می تواند به صورت بازگشتی تعریف شود و هر گره آن می تواند شامل اشاره گری به گره بعدی باشد، که این ساختار امکان ایجاد لیست های تو در تو را فراهم می کند. ساختار های دیگر معمولاً خطی هستند.
- [ [0 for col in range(3)] for row in range(3) ]
- [ [0 for row in range(3)] for col in range(3) ]
- [ [0] * 3 ] * 3
- [[0]] * 3 * 3
گزینه صحیح: 1
توضیح: عبارت اول یک لیست درک شده تو در تو صحیح را ایجاد می کند که ابتدا لیست های داخلی (سطرها) با 3 صفر ساخته شده و سپس این لیست ها در یک لیست خارجی قرار می گیرند.
- [x for x in sublist for sublist in matrix]
- [x for sublist in matrix for x in sublist]
- [sublist for sublist in matrix]
- [x for x in matrix]
گزینه صحیح: 2
توضیح: این عبارت، ابتدا روی هر 'sublist' در 'matrix' تکرار می کند و سپس روی هر 'x' در آن 'sublist' تکرار می کند و در نهایت یک لیست مسطح از عناصر تولید می کند.
- یک لیست جدید از 'row' ها ایجاد می کند که عناصر آن ها بزرگتر از 5 است.
- یک لیست جدید از 'element' ها ایجاد می کند که بزرگتر از 5 هستند و از لیست های داخلی 'matrix' استخراج شده اند.
- یک لیست از 'matrix' با حذف عناصری که بزرگتر از 5 هستند، ایجاد می کند.
- ماتریس اصلی را تغییر می دهد تا فقط شامل عناصری باشد که بزرگتر از 5 هستند.
گزینه صحیح: 2
توضیح: این عبارت یک لیست جدید می سازد که شامل تمام 'element' ها از هر 'row' در 'matrix' است، به شرطی که آن 'element' بزرگتر از 5 باشد.
- کاهش خوانایی کد و افزایش پیچیدگی.
- افزایش کارایی و مختصرنویسی کد.
- عدم امکان ایجاد ماتریس های غیر مربعی.
- نیاز به تعریف صریح ابعاد ماتریس در هر بار.
گزینه صحیح: 2
توضیح: لیست های درک شده معمولاً کد را کوتاه تر و خواناتر می کنند و اغلب از نظر کارایی نیز بهینه تر هستند.
- [x*x for x in range(11) if x % 2 == 0]
- [x*x for x in range(0, 11, 2)]
- [x for x in range(11) if x % 2 == 0 and x*x]
- [x*x for x in range(10) if x % 2 == 0]
گزینه صحیح: 2
توضیح: این عبارت به طور مستقیم اعداد زوج را در بازه 0 تا 10 (شامل 10) انتخاب کرده و سپس مربع آن ها را محاسبه و در لیست قرار می دهد.
- وقتی که عمق تو در تو بودن بسیار زیاد باشد و منطق پیچیده شود.
- وقتی که تنها یک حلقه 'for' استفاده شود.
- وقتی که لیست نهایی خالی باشد.
- وقتی که عملیات ساده ای مانند جمع انجام شود.
گزینه صحیح: 1
توضیح: اگرچه لیست های درک شده کد را مختصر می کنند، اما تو در تو بودن بیش از حد یا منطق پیچیده در داخل آن ها می تواند خوانایی کد را به شدت کاهش دهد و استفاده از حلقه های 'for' سنتی را ترجیح دهد.
- [(x, y) for x in range(1, 4) for y in range(1, 4)]
- [(x, y) for y in range(1, 4) for x in range(1, 4)]
- [ (x, y) for x in [1, 2, 3] ]
- [ (1, 2, 3), (1, 2, 3) ]
گزینه صحیح: 1
توضیح: این عبارت ابتدا روی 'x' از 1 تا 3 تکرار می کند و سپس برای هر 'x'، روی 'y' از 1 تا 3 تکرار می کند و جفت (x, y) را ایجاد می کند.
این مطلب برگرفته از محصول آموزشی «اولین قدمهای شما در دنیای کدنویسی با پایتون» است
برای مشاهده توضیحات کامل، جزئیات دوره و دریافت محصول، روی دکمه زیر کلیک کنید.
اطلاعات بیشتر و دریافت محصول