Bir sonraki veri yapımız hakkında konuşalım.
Ve buna sözlük deniyor.
Diğer dillerde.
Hash tablosu, harita ya da nesneler olarak adlandırılabilir.
Python'da bu sözlük fikrine sahibiz.
Ya da Python'un deyimiyle dict.
Bunu doğru telaffuz ettiğimden emin olmalıyım.
Bu, kayıt yaparken söylenmesi gerçekten zor bir kelime ve zaten sürekli tekrar ediyorsunuz.
Sözlük.
Ne oldu?
Python'da bir veri türüdür, ancak aynı zamanda bir veri yapısıdır.
Listelerden bahsederken bu veri yapısı fikrinden bahsettiğimi hatırlayın.
Python'da öğrendiğimiz ilk veri yapısı vardı.
Bu, verilerimizi, örneğin listeler gibi, onlara nasıl erişeceğimiz konusunda bazı farklı artıları ve eksileri olan bir
biçimde düzenlememizin bir yoludur.
Kolayca sipariş edilebildiklerini gördük.
Bunlara sıfır bir gibi indeksler aracılığıyla erişebiliriz.
Onları tersine çevirebilir, içlerine girebiliriz.
Gerçekten çok güzeldi.
Peki ya sözlükler?
Bakalım bir sözlük neye benziyor.
Sözlük mü?
Bak, bunun gibi bir şeyin anahtarı olur.
Ve bir değer.
Ve sonra bir virgül daha.
Ve sonra başka bir anahtar.
Ve başka bir değer.
Şunu deşifre edelim.
Bu yüzden burada bir sözlüğü ifade eden küme parantezleri kullanıyorum.
Ve bir listeden farklı olarak, anahtar değer çifti dediğimiz bir şeye sahibiz.
Anahtar, değeri yakalamamız için bir dizedir.
Nasıl yani?
Bu değerlerden herhangi birine erişebilmemiz için sözlüğe giderdim.
Ve sonra bizim durumumuzda anahtarı söyleyin, diyelim ki B'yi yakalamak istiyoruz, anahtarı yakalarız ve sonra yazdırdığımızda
sonucu duyarız.
Biz de değerini anlıyoruz.
Esasen bilgisayara şunu söylüyoruz: Hey, bu değişken sözlüğe sahibim.
Unutmayın, buna istediğim ismi verebilirim.
Bu değişken sözlüğe sahibim.
Gidip B anahtarını bulmanızı ve bu B anahtarının varsa bana değerini almanızı istiyorum.
Yani sizin hafızanıza ya da makinenin hafızasına girecek.
B'nin belleğimizde nerede depolandığını bulacak ve değeri alacaktır.
Yani B kitaplığında, var olmayan C'yi yaparsak ne olur değerine sahibiz.
Çalıştır'a tıklarsam, hayır, bir hata alıyorum.
Bana diyor ki, Hey, üzgünüm, C anahtarını arıyorsun, ama bende o anahtar yok.
İşte sözlük budur.
Sözlük, sıralanmamış bir anahtar değer çiftidir.
Sırasız derken kastettiğim şey, bellekte birbirlerinin hemen yanında olmadıklarıdır.
Hatırlayın, listelerle indeksi sıfır olan listelere erişebiliyorduk, sonra indeksi bir, indeksi
iki, tüm bu kitap rafları veya hemen yan yana bir sözlük.
Öte yandan, her yerde varlar.
A ve B'yi buraya koymama rağmen.
Bu bellekte bir noktada, bu da bellekte başka bir noktada olabilir.
Ve diyelim ki X'i eklersem, bu hafızada başka bir nokta olacaktır.
Ve bu sırayla olmayabilir.
Belki içine a, b, x yazmış olabilirim, ama aslında tüm sözlüğü döndürdüğümde.
Belki de bunu sıraya koymamışımdır.
Bunların hepsi hafızamıza dağılmış durumda.
Burada gördüğünüz gibi, sözlüğü aldığımda bunları sıraya koyuyorum.
Ama bunun tek nedeni küçük olması.
Eğer gerçekten çok büyük bir sözlüğüm olsaydı, onları eklediğim sıraya göre almayabilirdim.
Yani bir sözlük sıralanmamış bir anahtar değer çiftidir.
Ve anahtarı bildiğimiz sürece, yani aradığımız anahtar her neyse, o zaman sadece bunu veririz
ve bilgisayarımız değerleri almak için bellekte nereye bakacağını bilir.
Şimdi sözlükler ve listeler gibi veri yapılarıyla ilgili harika bir şey var.
Bunlar verilerin etrafındaki konteynerler, değil mi?
Yani bu istediğimiz herhangi bir şey olabilir.
Diyelim ki bunun bir liste olmasını istiyoruz.
Bir, iki, üç.
Belki de bunun bir dize olmasını istiyoruz.
Alo?
Ve belki de bu bir boolean değeridir.
Sevdim.
Doğru.
Bu tamamen geçerli.
A'ya erişebiliyorum.
Bu şekilde.
Ve listeyi aldım.
Ya listedeki ikinci öğeyi istiyorsam?
Böyle bir endeksim var.
Ve işte oldu.
Bu durum listeler için de geçerli ve bunu sık sık göreceksiniz, eğer bir listemiz varsa
ya da buna benim listem diyelim ve listem diyelim ki a içeren bir sözlük içeriyorsa.
Bir.
Ve ne var biliyor musun?
Bunu kopyalayıp yapıştıralım.
Bunu yapacağız.
Böylece dizideki ilk öğeye sahip olacağız.
Bunun gibi.
Sonra virgül.
Sonra dizideki başka bir öğe.
Ve bu seferkinde dört, beş, altı tane var.
Böylece artık listemden alabilirim.
O.
İlk madde.
Dizinin içinde.
Ve sonra belki kapmak.
Anahtar olan A.
Unutmayın, bu bir dize ve biz de diyelim ki üçüncü öğeyi almak istiyoruz.
O zaman gidelim.
Kime?
Eğer bunu çalıştırırsam, üç ve iki almalıyım.
Al bakalım.
Şimdi kendinize bu veri yapılarının ne işe yaradığını soruyor olabilirsiniz.
Mesela, neden bir sözlüğe ihtiyacımız var?
Listeye neden ihtiyacımız var?
Neden her şeyi yapan tek bir şeyimiz olsun ki?
Bu daha basit değil mi?
Bunu bir düşünün, çünkü bir sonraki videoda bu soruyu sizin için yanıtlamaya çalışacağım.