کپی با dict comprehension
کپی با Dict Comprehension در پایتون
در پایتون، Dictionary Comprehension یک روش قدرتمند و مختصر برای ایجاد دیکشنریهای جدید بر اساس دیکشنریهای موجود است. این تکنیک نهتنها خوانایی کد را بهبود میبخشد، بلکه عملکرد بهتری نسبت به روشهای سنتی دارد.
تفاوت کپی سطحی و عمیق
قبل از پرداختن به Dict Comprehension، باید تفاوت بین کپی سطحی (Shallow Copy) و کپی عمیق (Deep Copy) را درک کنید:
نوع کپی | توضیح |
---|---|
کپی سطحی | فقط اشیا سطح اول کپی میشوند و اشیا تو در تو ارجاع داده میشوند |
کپی عمیق | تمامی سطوح دیکشنری بهطور کامل کپی میشوند |
روشهای کپی دیکشنری
برای کپی یک دیکشنری در پایتون میتوانید از روشهای زیر استفاده کنید:
- استفاده از متد copy()
- استفاده از تابع dict()
- استفاده از 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() داشته باشید.