سوال شماره 4747 چندگزینه‌ای
آزمون رایگان پایتون فنی و حرفه ای
کدام یک از عبارات زیر برای ایجاد یک دیکشنری با استفاده از comprehension صحیح است که کلیدها اعداد 1 تا 5 و مقادیر مربع آنها باشد؟

گزینه‌ها:

  • 1. [x**2 for x in range(1,6)]
  • 2. {x: x**2 for x in range(1, 6)} ✓ صحیح
  • 3. {x: x*2 for x in [1,2,3,4,5]}
  • 4. dict(x=x**2 for x in range(1,6))

پاسخ صحیح:

  • {x: x**2 for x in range(1, 6)}

توضیحات:

گزینه اول صحیح است زیرا از سینتکس dictionary comprehension استفاده می‌کود که به صورت {key: value for item in iterable} نوشته می‌شود. در اینجا range(1,6) اعداد 1 تا 5 را تولید می‌کند و برای هر عدد، کلید همان عدد و مقدار مربع آن (x**2) خواهد بود. گزینه دوم اشتباه است چون از ضرب استفاده شده نه توان، گزینه سوم یک لیست ایجاد می‌کند نه دیکشنری، و گزینه چهارم سینتکس نادرستی دارد.