makaleler / Python Kütüphaneleri / Python Listeler ve Kullanımı

Python Listeler ve Kullanımı

01.02.2011 13:29:41

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 İfadeSonuçAçıklama
len([1, 2, 3])[
3Uzunluk
[1, 2, 3] + [4, 5, 6]
1, 2, 3, 4, 5, 6Dizinleri birbirine ekleme, bağlama
['Hi!'] * 4
'Hi!', 'Hi!', 'Hi!', 'Hi!'Tekrarlama
3 in [1, 2, 3]
TrueKontrol
for x in [1, 2, 3]: print x,
1 2 3Tekrarlama

İ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 İfadeSonuçAçıklama
p[2]
'PYTHONTR!'Indexler sıfırdan başlar
p[-2]
'Pythontr'Negatif: sağdan sola sayar
p[1:]
'Pythontr', 'PYTHONTR!'Negatif: sağdan sola sayar

Liste Fonksiyonları ve Metodları


Python Liste Fonksiyonları
NoFonksiyon Açıklamaları
1cmp(list1, list2)

Her iki listenin öğelerini karşılaştırır.

2len(list)

Listenin toplam uzunluğunu verir.

3max(list)

Listeden en yüksek değerli öğeyi döndürür.

4min(list)

Listeden en düşük değerli öğeyi döndürür.

5list(seq)

Bir tuple listeye döndürür


Python Liste Metodları
NoFonksiyon Açıklamaları
1list.append(obj)

Nesneyi listeye ekler.

2list.count(obj)

Listede varolan nesne sayısını döndürür

3list.extend(seq)

Dizin içeriğini listeye ekler

4list.index(obj)

Listede Nesne'nin göründüğü en düşük index numarasını döndürür.

5list.insert(obj)

Nesne'yi belirtilen offset dizinin ardına ekler.

6list.pop(obj=list)

Listedeki son nesne veya öğeyi kaldırır ve döndürür

6list.remove(obj)

Öğeyi listeden kaldırır.

7list.reverse()

Listeyi tersine çevirir.

8list.sort(
[func]
)

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 ncı elemanın değerine erişim sağlıyoruz değeri 'a'.
(3) : liste 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 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 listenin 1 nci elamanından başlayıp sondan -1 nci elamanına kadar olan kısmı teşkil eder.
(3) : liste 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 0'ncı eleman ilk 3 ncü elemanına kadar olan kısımdır 3 ncü eleman dahil değildir.
(2) :liste 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
yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda