1-اگر در دستور دوم قطعه برنامه زیر،به جای L1=L2 بنویسیم [:] L2=L1 نتیجه چه تفاوتی خواهد کرد؟آیا در عملکرد برنامه تاثیرگذار است؟امتحان کرده و توضیح دهید.
خیر در عملکرد برنامه تاثیرگذار نیست.
حالت اول خودِ لیست را بطور کلی دریافت می کند و برابر لیست دوم قرار می دهدو در حافظه یک خانه یکسان را اشغال میکند و لذا هر تغییری در هر کدام از دو لیست اعمال کنیم در دیگری نیز اعمال خواهد شد ولی در حالت دوم،لیست اول را جز به جز کپی نموده و لیست جدید را تشکیل می دهد که اگر چه لیست های تشکیل شده در هر دو حالت یکسان خواهند بود اما در حالت دوم دو لیست به بخش های مجزایی در حافظه اختصاص داشته و لذا تغییرات ثانویه در هر یک از آن ها در دیگری اعمال نخواهد شد.با این وجود با توجه به اینکه L1 پیش از اعمال تغییر در L2 چاپ شده خروجی دو کد یکسان خواهد بود اما وضعیت متغیر ها در حافظه در دو حالت فوق متفاوت خواهد بود.
درباره این سایت