07 08
Listin built-in methodlarına geçmeden önce birkaç global fonksiyondan ve operatörden bahsedeceğim. Bunlar çok kullanılanımı gerekebileceğin için bahsetmekte fayda var.
range() global fonksiyonu: 3 parametreye kadar değer alabilir, amacı belirli bir aralıkta sizin vereceğini parmetrelere göre veri üretir.
- Range(stop)
- Range(start, stop)
- Range(start,stop,step)
In Operatörü
İlgili veri yapısının içinde aranılan değer var mı diye bakıyor. Eğer bir değerin sadece olup olmadığına bakmak gerekiyorsa gayet kullanışlı bir operatördür. a in b Şeklinde kullanabiliyoruz. Bunu stringlerde de listelerde de kullanabiliyoruz, yok mu sorusu için başına not getirerek yapıyoruz.
List sınıfının built-in methodları
- append() methodu: Append,’de listenin sonuna ekleme yapılır ama eklemeyi tek bir nesne olarak ekler, yani siz örneğin bir range verdiğinizde, range türündeki nesneyi tek bir öğe olarak ekler.
- extend() methodu: Extend, append’e göre farkı extend iterable nesnenin öğlerini tek tek gezerek listeye ekler.
- insert() methodu: Araya ekle ve diğerlerini kaydır demek. Bir index ile eklenir ve diğer indexleri sizinkine göre kaydırır. İnsert aslında iki paremetre alıyor, birincisi pozisyon, ikincisi ise neyi insert edeceğinizdir. Append gibi tek bir nesneyi insert eder, tek elemanı insert eder. 0 ‘ıncı indis’e insert etmek başa eklemek anlamına gelir.
- clear() methodu: Listenin bütün elemanlarını silmek için kullanılır.
- pop() methodu: Listenin indisine göre silme
- remove() methodu: İçerisine bir eleman veriyoruz, bulduğu ilk eş elemanı siler. Bulamazsa exception throw eder.
- index() methodu: Bir listenin içindeki elemanın kaçıncı indiste olduğunu bulup döndürür. İlk bulduğu indexin değerini döndürür.
- index(10, 2) eğer iki parametre ile kullanılırsa aranacak elemanın (10) kaçıncı indisten başlanarak aranacağını belirtmiş oluruz.
- index(10,1,5) burada da üç parametre ile ara fakat 1 den başka 5’e kadar fakat 5 dahil olmayacak şekilde ara
- count() methodu: X=a.count(10) burada örnek vermek gerekirse a listesinin içinde 10’dan kaçtane olduğunu sayar.
- sort() methodu: Bir listenin sıraya dizilmesi için kullanılan method dur. Sıraya dizmede küçükten büyüğe bir sıralama kullanılır.
- string verilerde bir sıraya dizmek gerekirse orada sözlük sırasına göre karşılaştırma yapılır, tabi burada localizasyona dikkat etmek gerekir. Örneğin Ayşe ve Aysel sıralamasında Unicode’a göre ş harfi s harfinden daha büyük, önce Aysel gelirdi.
- Karşılaştırılabilme yapılabilmesi için nesnelerin birbiriyle karşılaştırılabilir olması gerekir. Aksi halde hata dönecektir.
- Eğer sort methodunu a.sort(reverse=true) şeklinde yapılırsa, sıralama büyükten küçüğe şeklinde çalışır.
- a.sort(key=foo) buraya bu şekilde fonksiyon ile çağırdığınızda iki elemanı sizin belirttiğiniz fonksiyona sokarak sıralamayı yapar, bu da isteğinize göre farklı çıktılar almanıza yarar. Örn: a.sort(key=len) dersek karşılaştırmadan önce karakter uzunluğuna göre sıralayacak. a.sort(key=str.lower) burada karşılaştırmada stringleri küçük harf haline getirecek ve böylelikle büyük küçük harfe göre sıralama değişkenlik göstermeyecektir.
- Not : sorted() isimli global bir sıralama fonksiyonu vardır fakat burada size bir geri dönüş değeri olarak liste döndürü.
- reverse() methodu: bir listeyi ters düz etmek için kullanılan method dur.
- Not: reversed global fonksiyonu bir nesneyi ters-düz eder fakat geriye iterable bir nesne döndürür. Bu nesnenin elemanlarına ancak itarate ederek ulaşabilirsiniz.
- copy() methodu: b=a.copy() method ile sığ kopyalama ile adres kopyalaması yapılır.
Listelerin Açılması
Elimizde bir liste olduğunu düşünelim, bu listelerin elemanları ayrı değişkenlere atamak isteyelim, bunu tek tek atama yaparak gerçekleştirmemiz gerekir. Bu da gerçekten hiç pratik değil. Listelerin açılması bu işlemi daha pratik yapılması için geliştirilmiş bir sentaks’dır. Sentaks şu şekildedir.
- a[10, 20 ,30 ]
- [x, y, z ] = a #Burada x,y,z elemanlarına listenini içindeki elemanları atama gerçeleşir.
- Burada sağ tarafta atamanın sağında liste olması gerekmek, sağ tarafta iterable bir nesne olması yeterlidir.
- Yani : [x, y, z ]= ‘ali’ ya da [a, b, c, d, e, ] = range(5) # Bunlar geçerlidir.
- Listelerde açılma yaparken, atanan ile atanacakların birbiri ile denk olması gerekir.
- Listelerde açılma yaparken iç içe listeler varsa aşağıdaki sentaks ile açılım yapılabilir.
- [a, [b, c ], d ] = [10, [20, 30], 40]
Listelerin Karşılaştırılması
Listeler leksikografik olarak karşılaştırılır. Tamamen string karşılaştırması gibi davranır.
- a = [10 ,20 ]
- b= [10, 5 ]
- a==b #—> false sonuç verir.
- a !=b #—> true sonuç verir.
- a > b #—> true sonuç verir.
- a >= b #—> true sonuç verir.
- a < b #—> false sonuç verir.
- a <= b #—> false sonuç verir.
- Listelerde nesneler aynı ise fakat sayı olarak eşitsizlik olursa, sayıca fazla olan liste daha büyük kabul edilir.
- Listelerin karşılıklı elemanlarının da karşılaştırılabilir olması gerekir.
- [10, 20 ] = [5, ‘ali’ ] # burada sonuç false olur çünkü ilk değerler karışılaştırıldığında karşılaştırma sonunuca göre sonlandırılır.
Bu kısımda paylaşmak istediklerim bunlardan ibaret, sorularınızı yorum kımında sormaktan çekinmeyiniz 🙂