Tekrar hoş geldiniz.
Listelerle devam edelim.
Şimdi, bu köşeli parantezleri daha önce de görmüştük, değil mi?
Tellerle çalışırken onları gördük.
Ve tıpkı dizeler gibi listeler de liste dilimlemeyi kullanabilmemiz açısından oldukça benzerdir.
Dize dilimleme ile hatırlarsanız, hello gibi şeylerimiz vardı ve bunu bir dizeye atayabiliyorduk, diyelim ki bir değişken
dize ve dize yapıp sonra dilimleyebiliyorduk.
Yani şöyle bir şey yapın.
Başladığımız, durduğumuz ve sonra adım attığımız yer.
Böylece sıfır indeksinden başlar ve iki indeksinde biter.
Ve sonra teker teker gidin.
Yani liste dilimleme de bizim için kullanılabilir.
Bu kartı biraz daha büyütelim.
Ve aslında bu şekilde biçimlendirerek işleri daha temiz hale getirebilirsiniz.
Pekala, sepetimize ne eklemeliyiz?
Birkaç oyuncak da ekleyeceğiz.
Ve sonra, biliyor musun?
Amazon artık market alışverişi de yapıyor.
O zaman biraz lezzetli üzüm ekleyelim.
Harika.
Şimdi, diyelim ki sepetteki her bir ürünü almak istedim.
Bunu basitçe yapıyoruz.
Ve tüm listemiz elimizde.
Ama biraz liste dilimleme kullanalım.
Diyelim ki ilk öğeden ikinci öğeye geçmek istedim.
Çalıştır'a tıklarsam.
Defter ve güneş gözlüğü alıyorum.
Belki sonuna kadar gitmek ama her ikisini de atlamak istiyorum.
Defterler ve oyuncaklar alıyorum.
Sıfırdan başladık.
Oyuncaklara doğru adım atarız, adım atarız ve işimiz biter.
Harika.
Ve bu, tellerle konuşurken zaten gördüğümüz bir şey.
Ama işin ilginçleştiği yer burası.
Dizelerin değişmez olduğunu söylediğimi hatırlıyor musunuz?
Bu da onları değiştiremeyeceğimiz anlamına geliyor.
Doğru.
Merhaba gibi bir dizemiz olduğunda bunu konuşmuştuk.
Diyelim ki Z'ye eşit olan sıfıra selam veremedim.
Burada bir hata alıyorum.
str nesnesinin öğe atamayı desteklemediğini alıyorum.
Değişmez.
Ancak listelerle ilgili ilginç olan şey, değiştirilebilir olmalarıdır.
Böylece Amazon sepetimi değiştirirsem.
Ve deyin ki, biliyor musunuz, ben gerçekten defter istemiyorum.
Bu yüzden ilk kalem olan defterleri alacağım.
Peki defterler yerine ne istiyoruz?
Yeni bir dizüstü bilgisayar istediğimizi söyleyeceğiz.
Bu büyük bir gelişme.
Bu Amazon sepetini yazdırdığımda.
Şuna bak.
Bu listeyi değiştirebiliyorum.
Ve bana bu anlamda bir hata vermedi.
Listeler değiştirilebilir.
Bilgisayar dizüstü bilgisayarlarımızın bellek kitaplığını değiştiriyoruz ve diyorum ki, Hey, bunu dizüstü bilgisayar olarak değiştirin
ve bunu yapmamıza izin veriyorlar.
Yani bu harika.
Ama burada bir şey deneyelim.
Peki ya burada başka bir baskı oluşturursam ve Amazon sepetinde liste dilimlemeyi kullanarak diyelim ki birinci
dizinden üçüncü dizine kadar ürün istiyorum.
Bunu çalıştıralım ve ne olacağını görelim.
Tahmin etmeye çalış.
Beklediğin bu muydu?
Bu kodun üzerinden geçelim.
Onuncu sıraya geldiğimizde, dizüstü bilgisayarla güncellenmiş Amazon arabasını aldık ve ben birinci ürünü
aldım.
İki, üç.
Yani bu güneş gözlüğü.
İki oyuncak.
Yani, sıfır bir, iki.
Ve sonra üçte duracağız.
Bunu anlamayı kolaylaştırmak için.
Burada sıfırla başlayalım.
Böylece dizüstü bilgisayarın değiştirildiğini görüyoruz.
İkincisinde ise 11. satırda Amazon sepetini yazdırıyoruz.
Ama bir saniye bekle.
Bu liste değişmedi.
Bunun nedeni, liste dilimleme ile yeni bir liste oluşturuyor olmamızdır.
Bu listenin yeni bir kopyası.
Burada tamamen yeni bir liste oluşturuyoruz, böylece bunu bir değişkene atayabiliyorum,
yeni sepet Amazon sepeti olacak.
Aynı şeyi burada da yapalım.
Ve yeni kart kendi başına tamamen yeni bir listedir.
Yeni bir araba değiştirebilirim.
Sıfır diyelim, sakız diyelim.
Ve eğer bunu basarsam.
Şunu görüyor musun?
İki yeni ayrı listem var, ancak bir liste değişkendir çünkü istediğim zaman dizinde ne varsa değiştirebilirim.
Ve liste dilimleme işlemini her yaptığımızda, bu listenin yeni bir kopyasını oluşturuyoruz.
Ama burada size zor bir sorum var.
Sadece bunu yaparsam ne olur?
Eğer bunu çalıştırırsam.
Hmm.
Bunu gördün mü?
Listemi dilimlemek yerine, basitçe yeni kartın Amazon sepetine eşit olacağını söyledim.
Ve sıfır olan yeni sepet indeksini sakıza eşit olacak şekilde değiştirdim.
Ama şimdi Amazon sepetim de değiştirildi.
Nedenmiş o?
Bu da bir mülakatta karşılaşabileceğiniz biraz zor bir soru.
Bunun nedeni, şu anda eşitleme yaptığım şekilde, hey, yeni sepet Amazon sepetine eşit
olacak.
Peki Amazon sepeti neye eşittir?
Amazon sepeti, makinelerimizin hafızasında bir yere işaret ediyor ve diyor ki, hey, Amazon sepeti
budur.
Çünkü burada listeyi kopyalamıyoruz.
Bunun yerine, yeni kartın değerinin Amazon sepetinin hafızasında ne varsa o olduğunu söylüyoruz.
Şimdi yeni sepeti değiştirdiğimizde, Amazon sepetini buradan geriye doğru değiştiriyoruz.
Dolayısıyla bu önemli bir kavramdır.
Diyelim ki bir listeyi kopyalamak istiyorsanız, şöyle bir şey yaparsınız.
Tüm listeyi kopyaladığınız yer.
Ve bu, kod tabanlarında çokça göreceğiniz bir şeydir.
Ama bu satır diyor ki, hey, bir kopya oluşturmak istiyorum.
Bu Amazon sepetini kopyalamak için liste dilimlemeyi kullanın ve şimdi bunu çalıştırırsam yeni sepete eşit olacak.
Orijinal Amazon sepetinin aynı kaldığını, ancak yeni sepetin artık farklı bir şey olduğunu göreceksiniz.
Bu, alışmanız gereken hızlı bir püf noktasıdır.
Ancak bu önemli bir kavram, listeyi kopyalama ve değiştirme fikri.
Ve bu, önümüzdeki birkaç videoda biraz daha keşfedeceğimiz bir şey.
Şimdilik biraz ara verin, bir sonrakinde görüşmek üzere.
Güle güle.