Şimdiye kadar ki derslerimizde sadece "string" ve "integer" veri tiplerini gördük. Oysa Python hayatımızı kolaylaştırmak için pek çok programlama dilinde olduğu gibi daha nice veri tipine sahiptir. Bu sayfada 3 veri tipi daha öğreneceğiz.
Bazı durumlarda bir değişkene birden fazla veri eklememiz gerekebilir. İşte bunun için Python; liste (list), demet (tuple) ve sözlük (dictionary) türünde veri tiplerine sahiptir.
Listeleri, içerisinde birden fazla veri bulunduran değişkenler olarak düşünebilirsiniz.
listeDegisken = []
Yukarıda ki şekilde listemizi tanımlayabiliriz. Liste öğleleri virgül ile ayrılır ve çeşitli veri tiplerini içerisinde barındırabilir.
>>> isim = "emre"
>>> listem = ["yunus", isim, 33, 3.14]
Gördüğünüz gibi liste elemanlarımıza bu şekilde ürettik. İlk elemanımız yunus stringi, ikinci elemanımız bir değişken (içerisinde emre stringi bulunuyor), üçüncü elemanımız 33 sayısı ve sonuncu elemanımız 3.14 ondalıklı sayısı.
Listemizi oluşturduk, peki biz listemizin içerisinde ki elemanlara nasıl ulaşacağız? Listeler sıralı bir yapıya sahiptir ve indis (sıra) numaralarını kullanarak ulaşabiliriz.
>>> print(listem[1])
Bu komutu verince ekrana ne yazdırdı? Evet, "emre" yazdı :) Python dahil pek çok programlama dilinde sıra 0 ile başlar, yani ilk elemanın numarası her zaman 0 dır. Gelin bir kaç örnek ile listeleri nasıl kullanacağımızı görelim.
>>> liste = ["yunus", "emre", "geldegül", "hürol", "aslan", "feyza", "yılmaz"]
>>> print(liste[1:5]) # 1. indisten başlayarak indis numarası 5e kadar olan bütün verileri alır.
>>> print(liste[-1]) # Listemizde ki son elemanı alır (yılmaz).
Eğer listemize bir eleman eklememiz gerekirse append() fonksiyonunu kullanabilirsiniz.
>>> liste = ["yunus"]
>>> print(liste)
>>> ["yunus"]
>>> liste.append("emre")
>>> print(liste)
>>> ["yunus", "emre"]
Listeden veri silmek isterseniz remeove() fonksiyonunu kullanmanız gerekir.
>>> liste = ["hürol aslan", "jale bektaş", "evrim ersin kangal", "yunus emre geldegül"]
>>> liste.remove("yunus emre geldegül")
Bu şekilde istediğimiz elemanı silebiliriz. Ama eğer indis numarasını belirterek silmek istersek pop() fonksiyonunu kullanmamız gerekir.
>>> liste = ["hürol aslan", "jale bektaş", "evrim ersin kangal", "yunus emre geldegül"]
>>> liste.pop(3)
Listelerin hayatımızı kolaylaştıracak bir kaç özel fonksiyonu daha var, bunları alt sayfalarda daha detaylı olarak inceleyeceğiz.
Bazen tanımladığımız listelerin hiç değişmemesi gerekir. Yani liste bir kez tanımlandıktan sonra tanımlı listeye veri eklenmemesi, silinmemesi ve değiştirilmemesi gerekir. Bu durumlarda listeler yerine demetleri kullanıyoruz. Ama bu defa köşeli parantezler yerine normal parantez kullanıyoruz.
>>> kisi = ("feyza", "yılmaz")
Parantezler sizi yanıltmasın, fonksiyon değil. Demet :) Bu liste artık değiştirilemez. Verilere erişmek için ise dışarı çıkartabiliriz.
>>> ad, soyad = kisi
>>> print(ad)
>>> "feyza"
>>> print(soyad)
>>> "yılmaz"
Bu kadar :)
Yine demet fonksiyonları için alt sayfalar oluşturduk, bu sayfalarda detaylar vermeye devam edeceğiz.
Listelerin en büyük eksikliği anahtar/değer ilişkisi olmaması. Şöyle ki listemizde ki her elemanın sırasına göre bir indis numarası var ve biz bu indis numarasına göre liste elemanlarımıza ulaşabiliyoruz. Eğer biz bu elemanlara bir anahtar ekleyerek bu anahtar ile ulaşmak istersek sözlük beri tipini kullanmamız gerekir. Sözlükler süslü parantezler ile tanımlanıyor :)
>>> sozluk = {"anahatar": "deger"}
Elemanlara ulaşmak için tıpkı liste elemanlarına ulaşırken yaptığımız gibi yapıyoruz. Sadece indis numarası yerine anahtar ismimizi yazıyor.
>>> print(sozluk["anahtar"]
>>> "deger"
Aslında bunu oldukça pratik buluyorum. Şunu bilmenizde fayda var; bir sözlükte aynı anahtardan sadece 1 tane olabilir. Ama aynı değerden istenilen kadar bulunabilir. Aşağıda ki örnekte bir liste içerisine bir sözlük eklenmiş.
>>> liste = ["yunus": {"site": "emregeldegul.net", "mail": "mail@mail.mail"}]
Veri tiplerinin içerisine diğer veri tiplerini de ekleyebilirsiniz. Python bu konuda ciddi bir özgürlük sağlamaktadır.
Yine sözlüklere ait fonksiyonlara alt sayfalarda değinilecektir.