LİSTELER
Bir sayı, yazı ya da nesneyi sabitler ya da değişkenler yolu ile belli bir sırada saklamak için kullanılır. Listeler [ ] içerisinde saklanırlar.
Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']
Ad isimli liste değişkenimize Talha, Enes,Ahmet,Mehmet isimlerini aktardıktan sonra çalıştıralım.
>>Ad
['Talha','Enes']
Görüldüğü gibi liste içerisine aktardığımız elamanlar görüntülendi. Liste içerisindeki elamanlar arasına virgül konularak sıralanır. İndeks numaraları 0’dan itibaren başlar. Yani 0 indeks numaralı eleman listemizde ‘Talha’ adlı elemandır. Liste içerisinde bir elemana erişmek için liste[indeks] şeklinde bir kullanım ile liste içerisindeki elemanlara erişiriz. İndeks bir tam sayı olmalıdır. Tam sayı bir değişken de olabilir.
Ad[1]
'Enes'
Görüldüğü gibi listemizin ikinci elemanı olan ‘Osman’ görüntülendi.
Ad[-1]
'Mehmet'
Listenin sondan birinci elemanını görüntüler.
>>> Ad[-3]
'Enes'
Listenin sondan üçüncü elemanını görüntüler.
Ad[2:]
['Ahmet', 'Mehmet']
Eğer : işaretinden sonrası belirtilmezse listenin sonuna kadar olan kısmını alır.
Ad[:2]
['Talha', 'Enes']
Eğer : işaretinden öncesi belirtilmezse listenin başına kadar olan kısmı alır.
>>> Ad[2:] = ['Ali', 'Veli']
>>> Ad
['Talha', 'Enes', 'Ali', 'Veli']
Görüldüğü gibi istenildiği takdirse listenin elemanlarını başka elemanlarla değiştirmemiz mümkün. Yukarıdaki örnekte listenin 2. Elemanından sonrasını yani Ahmet ve Mehmet isimli elemanları Ali ve Veli isimli elemanlarla değiştirdik.
Listelerimizin öğelerinin her biri birer elemandan oluşacak şeklinde bir zorunluluk yok. Birden fazla elamandan da oluşabilir. Örneğin
karisikliste = [['Ali','Veli'],['Ahmet','Mehmet']]
print karisikliste
Ekran çıktısı ise aşağıdaki gibidir:
[['Ali', 'Veli'], ['Ahmet', 'Mehmet']]
Yaptığımız örneklerdeki listeler hep tek boyutlu dizi şeklide idi. Şimdi örnek olarak üç boyutlu bir dizi şeklinde liste oluşturalım ve bu listenin elemanlarına nasıl erişim sağlanacağını görelim.
ucboyutludizi = [[[[1],[2]],[[3],[4]]],[[[5],[6]],[[7],[8]]]]
print ucboyutludizi
komutları ile lisyemizi oluşturduk ve listemizi görüntüleme komutunu verdik. Ekran çıktısı aşağıdaki şekilde olur:
[[[[1], [2]], [[3], [4]]], [[[5], [6]], [[7], [8]]]]
Listemizin elamanlarına sıra ile erişimi ise şu şekilde sağlarız:
print ucboyutludizi[0][0][0]
print ucboyutludizi[0][0][1]
print ucboyutludizi[0][1][0]
print ucboyutludizi[0][1][1]
print ucboyutludizi[1][0][0]
print ucboyutludizi[1][0][1]
print ucboyutludizi[1][1][0]
print ucboyutludizi[1][1][1]
ekran çıktısı aşağıdaki şekilde olacaktır:
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
Append Metodu:
Listeye eleman eklemek için kullanılır. Eklenen elemanlar listenin sonuna eklenecektir.
Örnek listemize bir eleman ekleyelim.
>>> Ad.append('Said')
>>> Ad
['Talha', 'Enes', 'Ahmet', 'Mehmet', 'Said']
Görüldüğü gibi Said ismini Ad listemize ekledik ve daha sonra da içeriğini görüntüledik.
Insert Metodu:
Listenin istenilen konumuna eleman eklemek için kullanılır.
Ad=['Talha', 'Enes']
print Ad
Ad.insert(1,'Ahmet')
print Ad
komutlarını yazdığımızda aşağıdaki çıktıyı alırız:
['Talha', 'Enes']
['Talha', 'Ahmet', 'Enes']
1 index numarası 2. elemanı temsil ettiği için listenin 2. Sırasına ‘Ahmet’ isimli eleman eklendi.
Ad.insert(-1,'Mehmet')
print Ad
komutlarını verdiğimizde ise şu çıktıyı alırız:
['Talha', 'Mehmet', 'Enes']
-1 index numarası listede sondan bir önceki elemanı temsil ettiği için listede sondan birinci eleman olarak ‘Mehmet’ eklendi.
Remove Metodu:
Listeden eleman silmek için kullanılır.
Eklediğimiz ‘Said’ elemanını listemizden silelim.
>>> Ad.remove('Said')
>>> Ad
['Talha', 'Enes', 'Ahmet', 'Mehmet']
Görüldüğü gibi Ad listemizin içeriğini görüntülediğimizde ‘Said’ isimli elemanın silindiğini görürüz.
Silme işlemini yapmanın diğer bir yöntemi de şu şekildedir:
>>> Ad[0:-1]=[]
>>> Ad
['Mehmet']
Görüldüğü gibi listenin sondan birinci elemana kadar olan elemanlarına boş değer atarak silinmiş oldu.
Listenin tümünü sıfırlamak için ise
>>> Ad=[]
Şeklinde bir metot uygulanabilir.
>>> Ad
[]
Görüldüğü gibi listemizi sıfırlamış olduk.
Pop Metodu:
Listenin son elemanını listeden çıkartır.
Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']
print Ad
Ad.pop()
print Ad
komutlarını çalıştırdığımızda aşağıdaki gibi çıktı verir:
['Talha', 'Enes', 'Ahmet', 'Mehmet']
['Talha', 'Enes', 'Ahmet']
Görüldüğü gibi pop komutunu çalıştırdıktan sonra ekran çıktısına baktığımızda listenin son elemanı olan ‘Mehmet’ isimli elemanın listeden çıkartıldığını görürüz.
Count Metodu:
Listedeki bir elemanın tekrar sayısını verir.
Örneğin listedeki Talha isimli elemanın tekrarlanma sayısını bulalım.
>>> Ad.count('Talha')
1
Görüldüğü gibi 1 sonucunu döndürecektir. Talha isimli elaman listede 1 defa tekrarlanmıştır.
Belirttiğimiz elaman listede yok ise 0 sonucunu döndürecektir.
>>> Ad.count('Ali')
0
Örneğinde olduğu gibi.
Extend metodu:
İki listenin toplanması için kullanılır. Bu işlem için + aritmetiksel operatörünü de kullanabilirsiniz.
>>> Ad=['Talha', 'Enes']
>>> Ad.extend(['Ahmet','Mehmet'])
>>> Ad
['Talha', 'Enes', 'Ahmet', 'Mehmet']
Aynı işlemi
>>> Ad+['Ahmet','Mehmet']
['Talha', 'Enes', 'Ahmet', 'Mehmet']
Şeklinde de yapabiliriz.
Index metodu:
Belirtilen elemanın konumunu verir. Liste içindeki elemanların indeksinin 0’dan başladığı unutulmamalıdır. Eğer eleman birden fazla tekrarlanıyorsa ilk bulunulan yeri verir.
Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']
print Ad.index('Enes')
komutlarını çalıştırdığımızda ekran çıktısı olarak 1 değerini verdiğini görürüz. Çünkü Ad listesinin Enes elemanının index değeri 1 dir.
Reverse Metodu:
Listenin elemanlarını sondan başa doğru sıralamak için kullanılır.
Ad=['Talha', 'Enes', 'Ahmet', 'Mehmet']
print Ad
Ad.reverse()
print Ad
>>>
['Talha', 'Enes', 'Ahmet', 'Mehmet']
['Mehmet', 'Ahmet', 'Enes', 'Talha']
Sort Metodu:
Listenin elemanlarını sıralamak için kullanılır. Sıralamada öncelik rakamlarda, sonra harflerdedir.
liste=['Talha', 'Enes', 'Ahmet', 5,'Mehmet',10]
print liste
liste.sort()
print liste
>>>
['Talha', 'Enes', 'Ahmet', 5, 'Mehmet', 10]
[5, 10, 'Ahmet', 'Enes', 'Mehmet', 'Talha']
Örneğimizde görüldüğü gibi sıralama işlemi rakamlardan başlayarak, harflerde de ilk harfine göre sıralandı.
Ayrıca cmp,key ve reverse parametleri de sort fonksiyonunda isteğe bağlı olarak kullanılabilir. Kullanılmadığı takdirde cmp=None, key=None, reverse=None değerlerini alırlar.
Aşağıda cmp parametresinin kullanımına bir örnek verilmiştir.
liste=[('Talha',6),('Enes',6),('Ahmet',5),('Mehmet',10)]
print liste
liste.sort(lambda x, y: cmp(x[1],y[1]))
print liste
Örneğimizde ad ve yaşlardan oluşan iki boyutlu bir dizi şeklinde bir liste tanımlanmıştır. Lambda yöntemi ve cmp parametresini birlikte kullanarak belirttiğimiz alana göre sıralama yaptık.
Ekran çıktısı aşağıdaki gibi olacaktır:
[('Talha', 6), ('Enes', 6), ('Ahmet', 5), ('Mehmet', 10)]
[('Ahmet', 5), ('Talha', 6), ('Enes', 6), ('Mehmet', 10)]
sort() metodu sıralamayı yaparken listenin içeriğini değiştirir; eğer listenin değişmemesini, yeni bir sıralı yeni bir listenin oluşmasını istiyorsak sorted fonksiyonunu kullanmalıyız. (Python 2.4 ve sonrası için). Şimdi buna göre son örneğimizi yeniden düzenleyelim:
liste=[('Talha',6),('Enes',6),('Ahmet',5),('Mehmet',10)]
print liste
yeniliste = sorted(liste, cmp=lambda x, y: cmp(x[1],y[1]))
print liste
print yeniliste
ekran çıktımız aşağıdaki şekildeki gibidir:
[('Talha', 6), ('Enes', 6), ('Ahmet', 5), ('Mehmet', 10)]
[('Talha', 6), ('Enes', 6), ('Ahmet', 5), ('Mehmet', 10)]
[('Ahmet', 5), ('Talha', 6), ('Enes', 6), ('Mehmet', 10)]
Görüldüğü gibi liste isimli listemizde bir değişiklik olmamış, yeniliste isimli listemizde ise sıralama işlemi yapılmıştır.
Şimdi de reverse parametresini kullanarak bir örnek yapalım:
liste=[('Talha',6),('Enes',6),('Ahmet',5),('Mehmet',10)]
liste.sort()
print liste
liste.sort(reverse=True)
print liste
>>>
[('Ahmet', 5), ('Enes', 6), ('Mehmet', 10), ('Talha', 6)]
[('Talha', 6), ('Mehmet', 10), ('Enes', 6), ('Ahmet', 5)]
İlk sıradaki çıktıda normal bir sıralama işlemi yapılmış, ikincisinde ise reverse parametresi kullanılarak sıralama işlemi yapılmış ve görüldüğü gibi sıralama tersine çevrilerek sondan başa doğru sıralama yapılmıştır.
Son parametremiz de key parametresi idi. Bununla ilgili örnekler yapalım:
cumle="Guzel goren guzel dusunur guzel dusunen hayatindan lezzet alir".split()
cumle.sort(key=str.lower)
print cumle
ekran çıktısı ise şu şekilde olacaktır:
['alir', 'dusunen', 'dusunur', 'goren', 'Guzel', 'guzel', 'guzel', 'hayatindan', 'lezzet']
Burada split fonksiyonu cümleyi parçalarına ayırmak için kullanılır.
Key parametresinin kullanımına bir başka örnek de şu şekilde:
import operator
liste=['Talha','Enes','Ahmet','Mehmet']
yeniliste = sorted(liste,key=operator.itemgetter(2))
print liste
print yeniliste
>>>
['Talha', 'Enes', 'Ahmet', 'Mehmet']
['Enes', 'Mehmet', 'Talha', 'Ahmet']
Görüldüğü gibi sıralama işlemi listede ikinci sırada olan Enes’den başlayarak yapılmıştır.
Len Metodu:
Listenin eleman sayısını verir.
liste=['Talha','Enes','Ahmet','Mehmet']
print len(liste)
Örneğimiz bize 4 sonucunu verecektir.