کپی لیست (Copy Lists)
«کپی لیست (Copy List)» یعنی ساختن لیستِ جدا از اصل. «ارجاع (Reference)» یعنی اشاره به همان حافظه. بنابراین با ارجاع، تغییر یکی، دیگری را عوض می کند. پس باید واقعاً کپی بگیریم.
کپی یک لیست؛ چرا نسبت دهی کافی نیست
نوشتن list2 = list1 فقط ارجاع می سازد، نه کپی واقعی. تغییر list1، list2 را هم تغییر می دهد. پس روش های درست را استفاده کن.
استفاده از copy()
متد داخلی copy() یک کپی سطحی می سازد. یعنی لیست جدید جداست.
thislist = ["apple", "banana", "cherry"]
mylist = thislist.copy()
print(mylist)
استفاده از list()
تابع سازنده list() هم یک کپی سطحی می سازد. نتیجه همان است.
thislist = ["apple", "banana", "cherry"]
mylist = list(thislist)
print(mylist)
استفاده از برش (Slice)
با عملگر برش [:] نیز می توان کپی گرفت. روش سریع و ساده است.
thislist = ["apple", "banana", "cherry"]
mylist = thislist[:]
print(mylist)
تمرین گام به گام
- یک لیست میوه بساز.
- با copy() از آن کپی بگیر.
- عضوی به اصلی اضافه کن و تفاوت را ببین.
fruits = ["apple", "banana"]
copy_fruits = fruits.copy()
fruits.append("cherry")
print(fruits)
print(copy_fruits)
نکته: اگر فقط می خواهی مرتب کنی، بخش مرتب سازی لیست را ببین. همچنین صفحه کپی لیست را بوکمارک کن.
نکته: بعد از کپی، می توانی سراغ اتصال لیست ها بروی و آن ها را ترکیب کنی.
جمع بندی سریع
- list2 = list1 فقط ارجاع است.
- copy() کپی سطحی می سازد.
- list() هم کپی سطحی می دهد.
- [: ] سریع و خوانا است.
- لیست کپی مستقل از اصلی است.