کپی گرفتن
bag.copy() مقدارهای همین لحظهٔ bag را برمیدارد و در یک فهرست تازه میگذارد. حالا bag اول tea را دارد و بعد water را، پس فهرست تازه هم tea است و بعد water. نام other همان فهرست تازه است. other خود bag نیست.
پیش از هر جایگزینی، جایگاه صفر other مقدار tea است و جایگاه 1 مقدار water. تعداد 2 است. این کپی عکس همان لحظه است. از این به بعد bag را نگاه نمیکند.
bag[0] = "soup" فقط داخل bag جای tea را میگیرد. other هنوز با tea شروع میشود و water در جایگاه 1 هر دو فهرست میماند. تعداد هر دو 2 است. کپی از این جایگزینی بعدی خبر ندارد.
bag = ["tea", "water"]
other = bag.copy()
bag[0] = "soup"
print(bag)
print(other)
خط اول soup است و بعد water. خط دوم tea است و بعد water. soup فقط در bag است. tea هنوز اول other است. print هر فهرست را با قلابهایش مینویسد تا دو فهرست کنار هم دیده شوند.
جهت برعکس هم همین است. other[1] = "bread" مقدار bread را فقط در other میگذارد. جایگاه 1 در bag همان water میماند. این برنامه آن قدم را برنمیدارد. فقط بعد از کپی، bag را عوض میکند.
bag[:] هم یک فهرست تازه با همان مقدارها میسازد. این برش همهٔ فهرست است و نتیجهاش از bag جداست. other = bag کپی نیست. هر دو نام یک فهرستاند، پس جایگزینی بعدی زیر هر دو نام دیده میشود.
📊 سه جور نوشتن
| نوشتن | چه به دست میآید |
|---|---|
| bag.copy() | یک فهرست تازه با مقدارهای همین لحظه |
| bag[:] | یک فهرست تازه با همان مقدارها |
| other = bag | فهرست تازه نیست؛ هر دو نام همان یک فهرستاند |
نامی که tea را نگه نمیدارد
اگر other = bag بنویسید و بعد bag[0] = "soup"، نام other هم soup را نشان میدهد. فهرست دومی در کار نبود که tea را نگه دارد. برنامهٔ بالا از copy() استفاده میکند، پس other همان tea را دارد و بعد water را.
صفحهٔ بعد مقدارها را مرتب میکند. این صفحه ترتیب را عوض نمیکند. tea در other جلوی water مانده چون هنگام کپی همین ترتیب بود. soup در bag اول است فقط چون بعد از کپی جایگاه صفر را عوض کردید.
چه چیز جدا ماند
- برنامه خط اول چه مینویسد و بعد خط دوم؟
- بعد از برنامه، اولین مقدار other چیست؟
- اگر بعد جایگاه 1 در other را bread کنید، در bag جایگاه 1 چه میماند؟
- other = bag چه میکند که copy() نمیکند؟
tea در کپی میماند
صفحه soup است و بعد water، و بعد tea است و بعد water. other هنوز با tea شروع میشود. تعداد هر دو 2 است. bread در other، جایگاه 1 در bag را water نگه میدارد. other = bag یک فهرست است، پس soup زیر هر دو نام دیده میشد. bag[:] یک فهرست تازهٔ دیگر با همان مقدارهاست. صفحهٔ بعد مقدارها را مرتب میکند. این کپی را نمیسازد.
🧠 دانش خود را بیازمایید
دانش خود را بیازمایید
خود را با این آزمون تعاملی به چالش بکشید و ببینید موضوع را چقدر خوب درک کردهاید
📝 دستورالعملها
- هر سوال را با دقت بخوانید
- بهترین پاسخ را برای هر سوال انتخاب کنید
- میتوانید آزمون را هر چند بار که میخواهید تکرار کنید
- پیشرفت شما در بالا نمایش داده میشود