کپی با dict comprehension

کپی با Dict Comprehension در پایتون

در پایتون، Dictionary Comprehension یک روش قدرتمند و مختصر برای ایجاد دیکشنری‌های جدید بر اساس دیکشنری‌های موجود است. این تکنیک نه‌تنها خوانایی کد را بهبود می‌بخشد، بلکه عملکرد بهتری نسبت به روش‌های سنتی دارد.

تفاوت کپی سطحی و عمیق

قبل از پرداختن به Dict Comprehension، باید تفاوت بین کپی سطحی (Shallow Copy) و کپی عمیق (Deep Copy) را درک کنید:

نوع کپی توضیح
کپی سطحی فقط اشیا سطح اول کپی می‌شوند و اشیا تو در تو ارجاع داده می‌شوند
کپی عمیق تمامی سطوح دیکشنری به‌طور کامل کپی می‌شوند

روش‌های کپی دیکشنری

برای کپی یک دیکشنری در پایتون می‌توانید از روش‌های زیر استفاده کنید:

  1. استفاده از متد copy()
  2. استفاده از تابع dict()
  3. استفاده از Dict Comprehension

مثال ساده از Dict Comprehension برای کپی:

original_dict = {'a': 1, 'b': 2, 'c': 3}
copied_dict = {k: v for k, v in original_dict.items()}

مزایای استفاده از Dict Comprehension

  • کد کوتاه‌تر و خوانا‌تر
  • امکان فیلتر کردن آیتم‌ها هنگام کپی
  • قابلیت تغییر مقادیر در حین کپی
  • عملکرد بهتر برای دیکشنری‌های بزرگ

برای مثال، اگر بخواهید فقط کلیدهای خاصی را کپی کنید یا مقادیر را تغییر دهید:

# کپی فقط کلیدهای زوج
original = {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
copied = {k: v for k, v in original.items() if k % 2 == 0}

برای اطلاعات بیشتر درباره روش‌های مختلف کپی دیکشنری در پایتون، می‌توانید به لینک مراجعه کنید.

توجه: Dict Comprehension برای دیکشنری‌های ساده و متوسط عالی عمل می‌کند، اما برای دیکشنری‌های بسیار بزرگ یا ساختارهای پیچیده تو در تو، ممکن است نیاز به روش‌های دیگری مانند copy.deepcopy() داشته باشید.