Python'da List veri türünde çok sayıda eleman (string, int vb) saklayabildiğimizi ve List veri türünde eleman ekleme, silme gibi işlemleri de gördük. Şimdi bir List'in değişken atama yöntemi ile kopyalandığında ortaya çıkan bir hatayı ve çözümünü paylaşarak List'leri nasıl kopyalayarak çoğaltabileceğimizi göstermek istiyorum.
markalar=["Apple","HP","Dell","Asus","Monster","Casper"]
notebooks=markalar
print(notebooks)
#['Apple', 'HP', 'Dell', 'Asus', 'Monster', 'Casper']
markalar.insert(5,"Sony")
print(notebooks)
#['Apple', 'HP', 'Dell', 'Asus', 'Monster', 'Sony', 'Casper']
Kodu doğru mu anlıyorum diye soranlar için yorumlamaya çalışayım; markalar adında bir listemiz var ve biz aynı elemanlara sahip notebooks adında bir liste oluşturmak için notebooks=markalar atamasını kullanıyoruz. Ama sonrasında markalara Sony markasını da eklediğimizde bir bakıyoruz ki notebooks listesi de güncellenmiş🤔 Değişkenlerin değerleri bilgisayarların RAM adı verilen geçici belleklerde saklanırlar ve Python, C# gibi programlama dillerinde referans türü adı (heap-stack alanları) verilen bir referanslama yöntemi kullanılarak adreslenirler. Bu sebeple bir listeyi başka bir listeye eşitleyerek çoğaltmak doğru bir uygulama değildir. Şimdi de List fonksiyonlarından Copy metodu ile aynı uygulamayı tekrarlayalım.
markalar=["Apple","HP","Dell","Asus","Monster","Casper"]
notebooks=markalar.copy()
print(notebooks)
#['Apple', 'HP', 'Dell', 'Asus', 'Monster', 'Casper']
markalar.insert(5,"Sony")
print(notebooks)
#['Apple', 'HP', 'Dell', 'Asus', 'Monster', 'Casper']
Artık markalar listesini güncellediğimizde notebooks listesinin güncellenmediğini görebiliyoruz.
Şimdi birden fazla listeyi birleştirerek kopyalama yöntemini de görelim ve uygulamasını yapalım.
yeniler=["Apple","HP","Dell","Asus","Monster","Casper"]
eskiler=["Amiga","Commodore","Sega"]
bilgisayarlar=yeniler.copy()+eskiler.copy()
print(bilgisayarlar)
#['Apple', 'HP', 'Dell', 'Asus', 'Monster', 'Casper', 'Amiga', 'Commodore', 'Sega']