Buna inanabiliyor musun?
Umarım sizi uyutmamışımdır, ama neredeyse geldik.
Son bir ana veri türü kümemiz daha var ve sonra işimiz bitiyor.
Biliyorum, bunun çok heyecan verici bir konu olmadığını biliyorum.
İnanın bana, bu en zor kısmı.
Yeni başladığınızda ve bu şeyleri anlamadan öğreniyorsanız.
Buna neden ihtiyacım var?
Bir sonraki oyunu nasıl inşa edeceğim?
Bir sonraki Netflix'i nasıl inşa edeceğim?
Bir sonraki en havalı Apple uygulamasını nasıl geliştireceğim?
Buna bakıyorsunuz ve bir sürü teori öğrendim diye düşünüyorsunuz.
Kendimi yeniden matematik dersindeymişim gibi hissediyorum.
Biliyorum.
İnan bana, ben de bunu yaşadım.
Ben de kendi kendini yetiştirmiş bir programcıydım.
Bunlar temelimizi inşa eden Lego bloklarıdır.
Bunları öğrendikten sonra yeni şeylere geçebiliriz ve göreceksiniz ki bu küçük dağa tırmandığınızda
işler çok daha kolaylaşacak ve gücün farkına varacaksınız.
Dersin sonuna doğru bu projeleri inşa etmeye başladığımızda, "Öğrendiğimiz tüm bu bloklar,
açıkçası sıkıcı olan tüm bu kısımlar anlam kazanacak" diyeceksiniz.
O yüzden dayan.
Zor olması gerekiyordu.
Zor olması gerekiyor, ancak çok yakında bunun neden bu kadar güçlü olduğunu ve öğrendiklerimizin neden gerçekten
harika şeyler inşa etmemize ve gerçekten harika programlar oluşturmamıza izin vereceğini göreceksiniz.
Şimdi sonuncusu ile bitirelim, son veri tipi, Python'da göreceğimiz son veri yapısı,
en azından ana olanlardan.
Buna küme denir ve kümeler basitçe benzersiz nesnelerin sıralanmamış koleksiyonlarıdır.
Hmm.
Bir göz atalım.
Bir benim setim ve benim setim oluşturalım.
Sözlük gibi küme parantezleri ile oluşturuyoruz.
Ancak bir sözlük yerine, anahtar değer çiftlerimiz yok.
Bunun yerine, sadece bir, iki, üç, dört, beş gibi değerlerimiz var.
Bu kadar.
Bu bir set.
Sadece bir set oluşturduk.
Ama unutmayın, size verdiğim tanımda küme, benzersiz nesnelerin sıralanmamış bir koleksiyonudur.
Bu ne anlama geliyor?
Peki, bunu yazdırırsam ve setimi söyleyip Çalıştır'a tıklarsam.
Bir set aldım.
Ama diyelim ki burada beş tane daha olsaydı ve Çalıştır'a tıklasaydım.
Yalnızca benzersiz setleri veya bir sette gördüğünüz benzersiz öğeleri döndürür.
Mükerrer yok.
Her şey benzersiz olmalı.
Yani bu beşli asla bir sete eklenmez.
Örneğin, benim setim gibi bir sete bir şeyler ekleyebilirsiniz ve sonra ekle diyebilir ve 100 gibi bir değer verebilirim.
Ve sonra diyelim ki nokta reklamımı yapıyorum ve sonra buraya tıklarsam çalıştır'a veriyorum.
Gördüğüm kadarıyla 100 ekleyebildim, ancak iki ekleyemedim çünkü setim zaten bu verileri
içeriyordu.
Bu bir emirdir.
Yani, burada bir, iki, üç, dört, beş yarattık, ama gerçek bir düzen yok.
Hafıza alanımızda birbirinin hemen yanında olan bir kitaplık yok.
Bunlar hafızada her yerdedir, ancak bir set onları bulabilir çünkü hepsi benzersizdir.
Yani hepsi bellekte tek bir konumdadır.
Size şunu sormama izin verin.
Ve bu eğlenceli küçük bir egzersiz olacak.
Eğer sana bir dizi verseydim.
Ve diyelim ki bunlar kontrol altında.
İşte burada.
Ve sizden yinelenmeyen bir dizi döndürmenizi istiyorum.
Bu yüzden her şeyi istiyorum.
Şöyle diyelim.
Buna benim listem diyelim.
Ve bir programcı bunu çoktan yarattı.
Tamam.
Ve sonra göreviniz, yalnızca benzersiz öğelere sahip bir liste veya koleksiyon oluşturmak veya döndürmektir.
Bunu bir sete dönüştürmek için ne yapardınız?
Bunu daha önce de gördük.
Bir set fonksiyonumuz var ve listemizi bu setin içine sarıyoruz.
Ve çıktısını alalım.
Koş'a tıklıyorum.
Şuna bir bak.
Bir listeden yeni bir set oluşturduk.
Ve tüm yinelenen değerleri kaldırdım.
Bu ne zaman faydalı olur?
Kullanıcı adlarımız olduğunu düşünsene, değil mi?
Ya da e-posta adresleri.
Başlangıç sayfamızda e-posta adreslerini topluyoruz, ancak yinelenen e-postalara sahip olmak istemiyoruz.
Bu e-posta listesini bir kümeye dönüştürmek ve yinelenenleri kaldırmak isteyebiliriz.
Yani tekrar tekrar e-posta göndermiyoruz.
Bu gerçekten harika.
Buna ne dersin?
Yapabilir miyim?
Bunu bir sete dönüştürelim.
Buna benim setim diyelim.
Bunu bir sete dönüştürecek.
Al bakalım.
Peki ya kümeme sıfır indeksinden erişmek istersem?
Hmm.
Set nesnesi dizin oluşturmayı desteklemez.
Yine, bunu daha çok bir sözlük olarak düşünebilirsiniz.
Bir sete erişmek için, içindeki öğeyi yakalamamız gerekir.
Hafızadan bilgi almanın anahtarı budur.
Bir şeyin var olup olmadığını kontrol etmenin yolu basitçe "Hey, benim setimde bir tane var mı?" demek ve bunu çalıştırmaktır.
Ve doğru anladık.
Setimin uzunluğunu da yapabiliriz ve beş tane alırız.
Yine çok çılgınca bir şey değil ama bir, iki, üç, dört, beş.
Bunun sadece benzersiz şeyleri saydığını unutmayın çünkü bunlar asla girilmeyecektir.
Bu bir set.
Alternatif olarak, bunu bir listeye de dönüştürebiliriz.
Burayı Çalıştır'a tıklarsam, artık setimin bir liste halinde olduğunu göreceksiniz.
Ayrıca, diyelim ki set nokta kopyalama işlemini yapabilir ve setimi bir şeye kopyalayabiliriz, diyelim
ki yeni.
Ya da yeni bir set ve sonra bu orijinalinden tamamen farklı veya yeni bir kopya olacak.
Şimdi bunu test edelim.
Bu yeni set.
Daha önce görmüş olabileceğimiz bir yöntem kullanırsam, ki bu benim set dot clear yöntemimdir, tahmin edebileceğiniz gibi seti
temizler ve çalıştır'a tıklarım.
O yeni seti aldım.
Ancak benim setim olan eski setimizi yazdırmaya çalıştığımda, boş ve boş bir set olacak.
Ancak setlerin gerçek gücü, size göstereceğim sonraki birkaç yöntemde ortaya çıkıyor.
Ve setlerin epeyce yöntemi vardır, ancak endişelenmeyin, çoğu oldukça benzerdir.
Bunu bir sonraki videoda inceleyelim.