Python Öğreniyoruz Bölüm 3: Listeler
Merhabalar herkese yeniden, SistersLab’in Toplum Gönüllüleri Vakfı tarafından desteklenen Women in Tech Academy proje katılımcılarından biriyim. Proje, 20–28 yaş aralığında beyanı kadın olan bireyleri 3 ay boyunca yazılım eğitimi ve destekleyici eğitimlerle güçlendirerek sektörde iş gücüne katılımını artırmayı hedefliyor. Projeyle ilgili detaylı bilgiye bu bağlantıdan ulaşabilirsiniz: https://sisterslab.co/women-in-tech-academy/
“Python Öğreniyoruz” adlı yazı serimize kaldığımız yerden devam ediyoruz. Geçen haftaki yazımızda fonksiyonlar konusunu ele almıştık, eğer okumadıysanız buradan okuyabilirsiniz. Bu yazımızda ise liste veri yapısını ayrıntılarıyla inceleyeceğiz. Şimdiden hepinize keyifli ve verimli okumalar…
Liste Nedir ?
Listeler yapıları gereği stringlere oldukça benzeyen indekslenip parçalanabilen ve üzerinde değişiklikler yapabildiğimiz bir veri yapısıdır. Önemli özellikleri şunlardır:
- Listeler [ ] (köşeli parantez) ile tanımlanır, liste elemanları , (virgül) ile ayrılır.
- Listeler farklı tipte veriler içerebilir.
- Listelere index ile erişilebilir bu özellik sıralı yani ordered olarak bilinir.
- Listeler duplicate veri barındırabilir, yani aynı değere sahip birden fazla veri bulundurabilir.
- Listeler mutabledır. Yani liste içine eklenen veri değiştirilebilir.
Listeler konusunda bu yazıda neler öğreneceğiz?
- Liste Tanımlama
- Liste Elemanlarına Erişim ve Slicing
- Temel Liste Metodları
- İç içe Listeler
O zaman haydii başlayalımm.
1. Liste Tanımlama
Listeler [ ] ile tanımlanıp liste elemanları , ile ayrılır. Aşağıda ilk_listem adında bir liste tanımladım ve print ile ekrana yazdırdım. Veri yapılarının tipini öğrenmek için type() methodu kullanıyorduk. örnek liste tanımlamayı görebilirsiniz.
Ayrıca listeler farklı veri tiplerini barındırabilir demiştik. Tanımladığımız listeyi string, integer ve float veri tiplerinde elemanlar ile oluşturduk.
2.Liste Elemanlarına Erişim ve Slicing
Liste elemanlarına tıpkı stringlerde olduğu gibi 0' dan başlayarak indeks numarası ile erişebiliriz. Aynı şekilde -1. indeks numarası ile de listenin sonuncu elemanına erişebiliriz. Listelerde sadece bellir bir kısmı almak istediğimiz durumlar için de yine stringlerde olduğu gibi başlangıç, bitiş ve adım atlama aralığı vererek parçalama (slicing) işlemini yapmış oluruz.
Tüm bunları daha iyi anlayabilmek için kod örneğine bakalım.
Yukarıdaki kod blogunun çıktısı şu şekilde olacaktır.
Listenin 0.indeksindeki eleman: 3
Listenin 6.indeksindeki eleman: 7
Listenin sonundaki eleman: 10
Listenin sondan ikinci elemanı: 9
Listenin ters çevrilmiş hali : [10, 9, 8, 7, 6, 5, 5, 3, 4, 3]
Slicing işlemleri
Listedeki elemanları 2şer atlayarak yazdıralım: [3, 3, 5, 7, 9] Listenin 6. indeksi ile sonuncu eleman arasındaki değerleri alalım: [7, 8, 9]
Liste elemanlarına döngüler ile erişim
Liste elemanlarına indeks ile erişimi öğrendik ancak her bir elemana tek tek indeks numarası girerek ulaşmanın zor olduğu durumlarda döngüler ile erişebiliriz. Peki nasıl ? Hemen inceleyelim.
Dört elemandan oluşan ilk_listem olarak tanımlanan listedeki her bir eleman item değişkenine atanarak print() metodu ile ekrana yazdırılmıştır.
Çıktı:Hatice
Candan
26
1.65
Listelerin en önemli özelliği değiştirilebilir yani mutable olmalarıdır. Biz liste içerisinde yer alan verilere eriştikten sonra bu değerleri değiştirebiliriz. Örneğin yukarıda tanımladığımız ilk_listem adlı listedeki ilk “Hatice” ismini “Nazlı” olarak değiştirelim.
3. Temel Liste Methodları
Listelerde en bilinen ve en çok kullanılan metodlar şunlardır :
- len() : listenin uzunluğunu bulmamıza yarar
- append(): verdiğimiz değeri listenin sonuna ekler
- insert() : listeye eklemek istediğimiz veriyi istenilen index numarasına eklememizi sağlar
Bu örnekte listenin 2. indeksine “Kadın” verisini ekledik.
- extend(): birden fazla elemanı listenin sonuna eklemeye yarar
Şimdi ise listeden elema silme işlemlerini nasıl yapacağımıza bakalım.
- remove() : içine yazılan değeri ilk bulduğu indeksten siler
Görüldüğü üzere listenin içinde iki adet 1 değeri olmasına rağmen sadece ilk bulduğu indexteki değeri sildi.
- pop() : içine değer vermezsek listenin son indeksindeki elemanı, değer verirsek verdiğimiz değere karşılık gelen indeksteki elemanı listeden atar ve attığı elemanı ekrana basar.
Kod çıktısında görüldüğü gibi my_list.pop() yazıp içine değer yazmayınca sondaki elemanı silerken içinde 2 yazdığımızda 2.indeksteki eleman olan 89 değerini listeden sildi.
- clear () : listenin içini siler, yani listeyi boş liste yapar
- del () : listeyi tamamen siler, sonradan aynı listeyi çağırmak istediğimizde ise ilgili liste silineceği için hata mesajı alırız.
del fonksiyonunu listeden belli bir aralıktaki elemanları silmek için de kullanabiliriz.
Üstteki kodda del my_list yaptığımızda liste tamamen hafızadan silenecektir. Print methodu ile silinen listeyi tekrar çağırdığımızda ise aşağıdaki hata mesajını alacağız.
--------------------------------------------------------------------------- NameError Traceback (most recent call last)
<ipython-input-31-b86bb1756ce3> in <module>
4
5 del my_list
----> 6 print(my_list) NameError: name 'my_list' is not defined
- sort () : listenin elemanlarını sıralamamızı sağlar.
Eğer içine herhangi bir şey yazılmazsa küçükten büyüğe sıralama yaparken içine reverse = True ifadesini alırsa büyükten küçüğe sıralama yapar.
4. İç İçe Listeler
Bir listenin içinde başka bir liste bulundurulabilir ve buna içiçe listeler denir. Bu özellik, Pythonda ağaç yapılarında veya matris yapılarında oldukça kullanışlıdır.
Daha iyi anlamak adına büyük bir liste içerisinde elemanları da liste olan yeni bir liste oluşturalım.
#Yeni listenin uzunluğuna bakalım
len(yeniliste)Çıktı: 3
Eğer liste içindeki ikinci listenin ilk elemanına erişmek isterse;
yeniliste[1][0] #kullanarak 4 değerine ulaşabiliriz.Çıktı:
4
Son Söz ve Kapanış
“Python Öğreniyoruz” yazı serimizin üçüncüsü burada son bulmaktadır. Buraya kadar geldiğiniz ve okuduğunuz için teşekkür ederim. Bu yazımda listeler konusunu ele alarak Python’da liste tanımlama,liste elemanlarına erişim, slicing işlemleri, temel liste metodları ve iç içe listeler konusuna değindim. Umarım hepiniz için faydalı olmuştur. Gelecek yazımda tuple veri yapısından bahsediyor olacağım.
Şimdilik kendinize cici bakın :)