امانوئل
3 سال پیش توسط امانوئل مطرح شد
5 پاسخ

متد copy در پایتون

سلام دوستان من دقیقا نفهمیدم کارایی و چرا باید از متد ‎copy()‎ در پایتون استفاده کرد

یک نمونه کد :

cities = ['Mumbai', 'London', 'Paris', 'New York']
favCities = cities.copy()
print("Original list: ", cities)
print("Copied list: ", favCities)

ثبت پرسش جدید
احسان داوری
تخصص : برنامه نویس
@ehsndvr 3 سال پیش مطرح شد
1

سلام
وقتی شما متغیری دارید که مثلا در اون یک لیست از اعداد هست مثل:

MyList = [1,2,3]

و وقتی متغیر MyList مساوی با یک متغیر دیگه قرار میدید یعنی:

MyVar = MyList

شما مقدار متغیرMyList رو به درون متغیر MyVar کپی نکردید/قرار ندادید !
بلکه فقط شما دارید به مقدار متغییر MyList در حافظه اشاره میکنید.
 تصویر
حالا شما اگر تغییری در متغییر MyVar ایجاد کنید، این تغییر در متغیر MyList هم صورت میگیره:
 تصویر

اما اگه از متد copy استفاده کنید، مقدار متغیر MyList درون یک آدرس جدید از حافظه که بهش میگیمMyVar قرار میگیره:
 تصویر
همونطور که در عکس بالا میبینید مقدار متغیر MyList هیچ تغییری نکرد، اما به لیست متغیر MyVar یک 5 اضافه شد.

قبل از copy:
 تصویر
بعد از copy:
 تصویر


امانوئل
تخصص : :) بـالـاخـَرـہ ڪـَم و زیـاد...
@emuatkins 3 سال پیش مطرح شد
0

....
هیچکی نظری نداره؟


احسان داوری
تخصص : برنامه نویس
@ehsndvr 3 سال پیش مطرح شد
1

سلام
وقتی شما متغیری دارید که مثلا در اون یک لیست از اعداد هست مثل:

MyList = [1,2,3]

و وقتی متغیر MyList مساوی با یک متغیر دیگه قرار میدید یعنی:

MyVar = MyList

شما مقدار متغیرMyList رو به درون متغیر MyVar کپی نکردید/قرار ندادید !
بلکه فقط شما دارید به مقدار متغییر MyList در حافظه اشاره میکنید.
 تصویر
حالا شما اگر تغییری در متغییر MyVar ایجاد کنید، این تغییر در متغیر MyList هم صورت میگیره:
 تصویر

اما اگه از متد copy استفاده کنید، مقدار متغیر MyList درون یک آدرس جدید از حافظه که بهش میگیمMyVar قرار میگیره:
 تصویر
همونطور که در عکس بالا میبینید مقدار متغیر MyList هیچ تغییری نکرد، اما به لیست متغیر MyVar یک 5 اضافه شد.

قبل از copy:
 تصویر
بعد از copy:
 تصویر


میلاد خسروی
تخصص : برنامه نویس بامزه
@milwad 3 سال پیش مطرح شد
0

سلام خسته نباشید
ببین خیلی از متد ها هست استفاده زیادی ندارن ولی گذاشتن یه زمانی ممکنه تو از یه جیزی باید copy بگیری بعدش میفهمی که چقدر خوب بوده این متد و لزوم بر استفاده از همه متد ها نیست


امانوئل
تخصص : :) بـالـاخـَرـہ ڪـَم و زیـاد...
@emuatkins 3 سال پیش مطرح شد
0

خیلی ممنونم احسان جان توضیحات جامع و کامل بود 🌹


امانوئل
تخصص : :) بـالـاخـَرـہ ڪـَم و زیـاد...
@emuatkins 3 سال پیش مطرح شد
0

@milwad
درست میگین یکسری توابع شاید استفاده زیادی نداشته باشن ولی باید بدونی که برای فلان کار پایتون اون کنارا یه همچین توابعی داره که من استفادش کنم🤗


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام