husonet | Tarih: 01.02.2011
Python Listeler ve Kullanımı
Python'daki en temel veri yapılarından bir taneside listelerdir. Listelerin ilk öğesi 0 dan başlar.
Python programlama dilinin altı yerleşik dizisi vardır, ancak en yaygın olarak listeler ve tuple kullanılır.
Tüm dizin türleri ile yapabileceğimiz çok fazla işlem var. Bu işlemler, dizine ekleme, çıkarma, sıralama vb. gibi işlemleri içerir. Buna ek olarak, Python, bir dizinin uzunluğunu, en büyük ve en küçük öğelerini bulmak için vb. gibi işlemleri uygulayacak fonksiyonlara sahiptir.
Python List Yapısı
Listeler, köşeli parantezler arasında virgülle ayrılmış değerlerin (öğeler) kümeler, Python'da bulunan en kullanışlı veri türüdür. Bir liste hakkında önemli olan, bir listedeki öğelerin aynı türde olması gerekmemesidir.
Bir liste oluşturma, köşeli parantezler arasında virgülle ayrılmış farklı değerleri kümelendirilmesidir.
liste1 = ['pythontr', 'husonet', 1978, 2007];
liste2 = [1, 2, 3, 4, 5 ];
liste3 = ["a", "b", "c", "d"]
Not:listeler php'deki yada delphi'deki dizi(array) lara benzetebiliriz.
Listelerin dizinleri 0'dan başlar ve listeler dilimlenmiş, birleştirilebilir vb. olabilir.
Listelerde Değerlere Erişme
Listelerdeki değerlere erişmek için ayrıca atama işlemleri için köşeli parantezler içinde index numaraları kullanabilirsiniz.
#!/usr/bin/python
list1 = ['pythontr', 'husonet', 1978, 2017]
list2 = [1, 2, 3, 4, 5, 6, 7 ]
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]
Yukarıdaki kod çalıştırıldığında aşağıdaki sonucu verir:
list1[0]: pythontr
list2[1:5]: [2, 3, 4, 5]
Listeleri Güncelleme
Atama operatörü ile listeleri güncelleyebilir yada append fonksiyonu ile listelere ekleme yapabiliriz.
#!/usr/bin/python
list = ['pythontr', 'husonet', 1978, 2017];
print "index 2 degeri : "
print list[2]
list[2] = 2009
print "index 2 yeni değer: "
print list[2]
Not: append () metodu sonraki bölümde ele alınacaktır.
Yukarıdaki kod çalıtırıldığında aşağıdaki sonucu verir :
index 2 degeri :
1978
index 2 yeni değer:
2009
Liste Öğelerini Sil
Bir liste öğesini kaldırmak için, tam olarak hangi öğeleri / öğeleri silmekte olduğunuzu biliyorsanız del() fonksiyonunu veya bilmiyorsanız remove() fonksiyonunu kullanabilirsiniz.
#!/usr/bin/python
list1 = ['pyhtontr', 'husonet', 1978, 2017];
print list1
del list1[3];
print "index 3 silindi : "
print list1
Yukarıdaki kod çalıtırıldığında aşağıdaki sonucu verir :
\['pyhtontr', 'husonet', 1978, 2017\]
index 3 silindi :
['pyhtont', 'husonet', 1978]
Not: remove () fonksiyonu sonraki bölümde açıklanmaktadır.
Temel Python Liste Operatörleri
Listeler, * ve + operatörlerine yanıt verir; sonuçların bir dizge değil, yeni bir liste olması dışında, burada da bitiştirme ve tekrarlama demektir.
test = [2]
test * 10
Yukarıdaki kod çalıtırıldığında aşağıdaki sonucu verir :
[2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
a = ['a']
b = ['b']
a = a + b
Yukarıdaki kod çalıtırıldığında aşağıdaki sonucu verir :
['a', 'b']
Aslında, listeler önceki bölümdeki dizelerde kullandığımız genel sıralı işlemlerin tümüne yanıt verir.
Python İfade | Sonuç | Açıklama |
| 3 | Uzunluk |
| 1, 2, 3, 4, 5, 6 | Dizinleri birbirine ekleme, bağlama |
| 'Hi!', 'Hi!', 'Hi!', 'Hi!' | Tekrarlama |
| True | Kontrol |
| 1 2 3 | Tekrarlama |
İndeksleme, Bölümleme ve Matrisler
Listeler diziler olduğundan, dizin oluşturma ve bölümleme işlemleri, dizeler için yaptığı gibi listeler için aynı şekilde çalışır.
p = ['pythontr', 'Pythontr', 'PYTHONTR!']
Python İfade | Sonuç | Açıklama |
| 'PYTHONTR!' | Indexler sıfırdan başlar |
| 'Pythontr' | Negatif: sağdan sola sayar |
| 'Pythontr', 'PYTHONTR!' | Negatif: sağdan sola sayar |
Liste Fonksiyonları ve Metodları
Python Liste Fonksiyonları
No | Fonksiyon Açıklamaları |
1 | cmp(list1, list2) Her iki listenin öğelerini karşılaştırır. |
2 | len(list) Listenin toplam uzunluğunu verir. |
3 | max(list) Listeden en yüksek değerli öğeyi döndürür. |
4 | min(list) Listeden en düşük değerli öğeyi döndürür. |
5 | list(seq) Bir tuple listeye döndürür |
Python Liste Metodları
No | Fonksiyon Açıklamaları |
1 | list.append(obj) Nesneyi listeye ekler. |
2 | list.count(obj) Listede varolan nesne sayısını döndürür |
3 | list.extend(seq) Dizin içeriğini listeye ekler |
4 | list.index(obj) Listede Nesne'nin göründüğü en düşük index numarasını döndürür. |
5 | list.insert(obj) Nesne'yi belirtilen offset dizinin ardına ekler. |
6 | list.pop(obj=list[-1]) Listedeki son nesne veya öğeyi kaldırır ve döndürür |
6 | list.remove(obj) Öğeyi listeden kaldırır. |
7 | list.reverse() Listeyi tersine çevirir. |
8 | list.sort( )Liste içinde sıralama yapar. |
Python Listeleme Örnekleri
Listenin tanımlanması
$ipython
>>> liste = ["a", "b", "pythontr", "z", "husonet"] #(1)
>>> liste
['a', 'b', 'pythontr', 'z', 'husonet']
>>> liste[0] #(2)
'a'
>>> liste[4] #(3)
'husonet'
(1) : liste adında 4 elamanlı bir liste tanımlıyoruz.
(2) : liste[0] ncı elemanın değerine erişim sağlıyoruz değeri 'a'.
(3) : liste[4] ncü elemanın değerine erişim sağlıyoruz değeri 'husonet'.
Bir listeyi dilimleme
>>> liste
["a", "b", "pythontr", "z", "husonet"]
>>> liste[1:3] #(1)
['b', 'pythontr']
>>> liste[1:-1] #(2)
['b', 'pythontr', 'z']
>>> liste[0:3] #(3)
['a', 'b', 'pythontr']
(1) : liste[1:3] listenin 1 den başlayıp ilk 3 uncu elemanına kadar olan kısmı alır. 3 ncu elemanı dahil değildir.
(2) : liste[1:-1] listenin 1 nci elamanından başlayıp sondan -1 nci elamanına kadar olan kısmı teşkil eder.
(3) : liste[0:3] listenin 0 elamınından başlayıp ilk 3 ncu elamanına kadar olan kısımdır. 3 ncu elamanı dahil değildir.
Bir listeyi dilimleme tek taraflı
>>> liste
['a', 'b', 'pythontr', 'z', 'husonet']
>>> liste[:3] #(1)
['a', 'b', 'pythontr']
>>> liste[3:] #(2)
['z', 'husonet']
>>> liste[:] #(3)
['a', 'b', 'pythontr', 'z', 'husonet']
(1) :liste[:3] 0'ncı eleman ilk 3 ncü elemanına kadar olan kısımdır 3 ncü eleman dahil değildir.
(2) :liste[3:] 3'ncü eleman dahil dizide var olan son elemana kadar olan kımsı alır
(3) :liste[:] listenin bütün elemanlarını getirir.
Listelere eleman eklemek
>>> liste
['a', 'b', 'pythontr', 'z', 'husonet']
>>> liste.append("yeni") #(1)
>>> liste
['a', 'b', 'pythontr', 'z', 'husonet', 'yeni']
>>> liste.insert(2, "yeni") #(2)
>>> liste
['a', 'b', 'yeni', 'pythontr', 'z', 'husonet', 'yeni']
>>> liste.extend(["iki", "eleman"]) #(3)
>>> liste
['a', 'b', 'yeni', 'pythontr', 'z', 'husonet', 'yeni', 'iki', 'eleman']
(1) : append metodu ile bir adet listemize eleman ekliyoruz.
(2) : insert metodu listemizin arasına elaman eklememizi sağlıyor metodun ilk parametresi sıra ikinci parametresi ise veridir.
(3) : extend metodu listemize liste halinde veri eklememize olanak sağlıyor.
extend ve append arasındaki farklı örnekler verelim.
>>> ls = ['a', 'b', 'c']
>>> ls.extend(['d', 'e', 'f']) #(1)
>>> ls
['a', 'b', 'c', 'd', 'e', 'f']
>>> len(ls) #(2)
6
>>> ls[-1]
'f'
>>> ls = ['a', 'b', 'c']
>>> ls.append(['d', 'e', 'f']) #(3)
>>> ls
['a', 'b', 'c', ['d', 'e', 'f']]
>>> len(ls) #(4)
4
>>> ls[-1]
['d', 'e', 'f']
(1) : extend metodu ile bir listeyi bir listeye ilave ediyoruz.
(2) : len metodu ile extend metodumuzla listemize ilave yaptıktan sonra liste elemanlarının toplamını alıyoruz.
(3) : append metodu ile listemize 1 elamanı liste şeklinde ekliyoruz.
(4) : len metodu ile append metodumuzla eklenen liste şeklinde elemandan sonra farkı görmek için listemizin eleman sayısının toplamını alıyoruz.
Listelerde arama
>>> liste
['a', 'b', 'yeni', 'pythontr', 'z', 'husonet', 'yeni', 'iki', 'eleman']
>>> liste.index("pythontr") #(1)
3
>>> liste.index("yeni") #(2)
2
>>> liste.index("delphi") #(3)
Traceback (innermost last):
File "<interactive input>", line 1, in ?
ValueError: list.index(x): x not in list
>>> "delphi" in liste #(4)
False
(1) : index metodu ile listeden 'pythontr' değeri aranıyor ve geri dönüş değeri olarak index numarasını veriyor.
(2) : index metodu ile listeden 'yeni' değeri aranıyor ve geri dönüş değeri olarak ilk bulduğu değerin index numarasını veriyor.
(3) : index metodu ile listeden 'delphi' değeri aranıyor listemizde olmadığı için hata mesajı dönüyor
(4) : "delphi" in liste sorgulaması ile liste de değerin varolup olmadığını sorguluyoruz true yada false şeklinde değer döndürüyor.
Listelerden eleman silmek.
>>> liste
['a', 'b', 'yeni', 'pythontr', 'z', 'husonet', 'yeni', 'iki', 'eleman']
>>> liste.remove("z") #(1)
>>> liste
['a', 'b', 'yeni', 'pythontr', 'husonet', 'yeni', 'iki', 'eleman']
>>> liste.remove("yeni") #(2)
>>> liste
['a', 'b', 'pythontr', 'husonet', 'yeni', 'iki', 'eleman']
>>> liste.remove("deneme") #(3)
>>> li.remove("c")
Traceback (innermost last):
File "<interactive input>", line 1, in ?
ValueError: list.remove(x): x not in list
>>> liste.pop() #(4)
'eleman'
>>> liste
['a', 'b', 'pythontr', 'husonet', 'yeni', 'iki']
>>> liste.pop(1) #(5)
'b'
>>> liste
['a', 'pythontr', 'husonet', 'yeni', 'iki']
(1) : remove metodu ile listemizden "z" elemanını siliyoruz.
(2) : remove metodu ile listemizden "yeni" elamanını siliyoruz. Dikkat edersiniz iki adet yeni elemanı var ilk olanı siliyor.
(3) : remove metodu ile listede yer almayan bir eleman silme işlemi yapılmaya çalışıyor bu sebepten hataya düşüyor.
(4) : pop metodu ile listenin son elemanı siliniyor. Tek farkı silinen elamanı döndürüyor.
(5) : pop(1) metodu ile 1 indexli eleman silinir ve silinen eleman döndürülür.
Listeler ve Operatorler
>>> liste = ['a', 'b', 'c']
>>> liste = liste + ['d', 'e'] #(1)
>>> liste
['a', 'b', 'c', 'd', 'e']
>>> liste += ['f'] #(2)
>>> liste
['a', 'b', 'c', 'd', 'e', 'f']
>>> liste = ['a', 'b'] * 3 #(3)
>>> liste
['a', 'b', 'a', 'b', 'a', 'b']
(1) : '+' operatörü sayesinde listeye yeni bir liste ekleniyor.
(2) : '+=' operatörü ile listeye yeni bir eleman ekleniyor.
(3) : '*' var olan listenin aynı elemanları 3 le çarpılarak çoğaltılıyor
Listeler Sıralama ve Eleman Sayısı
>>> liste = ['a', 'b', 'yeni', 'pythontr', 'z', 'husonet', 'yeni', 'iki', 'eleman']
>>> liste.sort() #(1)
>>> liste
['a', 'b', 'eleman', 'husonet', 'iki', 'pythontr', 'yeni', 'yeni', 'z']
>>> liste.reverse() #(2)
>>> liste
['z', 'yeni', 'yeni', 'pythontr', 'iki', 'husonet', 'eleman', 'b', 'a']
>>> liste.count('yeni') #(3)
2
(1) : sort metodu listeyi sıralama işlemi yapar.
(2) : reverse metodu listeyi tersten sıralar.
(3) : count metodu aldığı parametrenin listede kaç adet olduğunu döndürür.
ilgili konular
python da sözlükler (Dictionaries)
python listeler (list)
python demetler (Tuples)
python değişkenler tanımlanması(Declaring variables)
python listeleri haritalama, filtreleme, azaltma
python listelerde matrisler