Python List (Diziler / Arrays)

Python List (Diziler / Arrays)

Python Programlama Dilinde 4 tür dize (array) bulunur. Bunlar;

  • List, sıralanabilir ve değiştirilebilir dizeler. Bu tarz dizelere aynı üyeler tekrar eklenebilir.
  • Tuple, sıralanabilir ancak değiştirilemez dizelerdir. Aynı üyeler birden fazla eklenebilir.
  • Set sıralanamaz ve aynı üyeleri kabul etmez.
  • Dictionary sıralanamaz ancak değiştirilebilir ve listelenebilir. Aynı üyeler eklenemez.

Bir dize kullanırken dizelerin özelliğini bilmek ve ona göre kullanmak hem zaman kazandırır, hem işimizi kolaylaştırır.
 

List

Sıralanabilir ve değiştirilebilir veriler topluluğudur. Nesneler köşeli parantezler arasına yazılır.
 

PYTHON Kodu

thislist = ["elma", "muz", "ayva"]
print(thislist)

Dizedeki Bir Değere Erişmek

Dizedeki bir elemana ulaşmak için sıra numarasını köşeli parantez içinde belirtiriz. İlk elemanın 0 (sıfır) olduğunu unutmayın!
 

PYTHON Kodu

thislist = ["elma", "muz", "ayva"]
print(thislist[1])

Yukarıdaki kod çalıştırıldığında ekrana "muz" yazılacaktır. Çünkü muz 1. elemandır (0 = elma, 1 = muz, 2 = ayva).
 

Sondan Sıraya Göre Değer Almak

Negatif Sıra: Python'da köşeli parantez içinde negatif sıra numarası belirtebilirsiniz. Bu şekilde kullanıldığında sondan kaçıncı nesne ise o görüntülenecektir.
 

PYTHON Kodu

thislist = ["elma", "armut", "kiraz"]
print(thislist[-1])

Yukarıdaki örnek çalıştırıldığında ekranda "kiraz" yazacaktır. Çünkü kiraz -1. (en son) nesnedir. 2 = armut, -3 = elma).
 

Aralık Belirtmek

Bir dizenin belli elemanlarını aralık belirterek alabilirsiniz. Alınan aralık yeni bir dize olarak dönecektir.
 

PYTHON Kodu

thislist = ["elma", "muz", "kiraz", "portakal", "kivi", "karpuz", "mango"]
print(thislist[2:5])

Yukarıdaki örnekte 2. eleman (kiraz), 3. eleman (portakal) ve 4. eleman (kivi) seçilecektir. 5. eleman (karpuz) sonuca dahil edilmez. Yani 2:5 = 3 elemanlı bir dize oluşturur.

Eğer aralık belirtirken ilk sayıyı boş geçersek ilk elemandan belirtilen sayı kadar değeri dize haline dönüştürür.
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz", "portakal", "kivi", "karpuz", "mango"]
print(liste[:4])

Yukarıdaki kod çalıştırıldığında sonuç olarak 0, 1, 2 ve 3. elemanlar olmak üzere toplam 4 elemanlı bir dize elde etmiş olacağız.

Eğer ikinci parametre boş bırakılırsa bu durumda ilk belirtilen elemandan itibaren dizenin sonuna kadar değerler alınarak bir dize oluşturulur.
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz", "portakal", "kivi", "karpuz", "mango"]
print(liste[2:])

Yukarıdaki kod çalıştırıldığında 2. eleman yani "kiraz" dan başlamak üzere son eleman mango'ya kadar değerler seçilir ve bir dize oluşturulur.

Negatif sıralar kullanarak bir aralık belirtebiliriz. Örneğin sondan 4. karakterden, sondan 2. karaktere kadar olan değerler seçilecekse, şu tarz bir kod işimizi görecektir:
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz", "portakal", "kivi", "karpuz", "mango"]
print(liste[-4:-1])

Yukarıdaki kod çalıştırıldığında -4. nesne olan portakal'dan -1. nesne olan karpuz'a kadar değerler bir dize haline getirilecektir.
 

Bir Değeri Değiştirmek

Dizedeki bir değeri değiştirmek için önce değişkenin adının sağına köşeli parantez arasında sıra numarası (index) yazılır, ardından eşittir kullanılarak yeni değer yazılır.
 

PYTHON Kodu

liste = ["elma", "muz", "armut"]
liste[0] = "mandalina"
print(liste)

Dizedeki Tüm Değerleri Sırayla Yazdırmak

for döngüsünü aşağıdaki biçimde kullanarak dizedeki değerleri tek tek işleyebiliriz.
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz"]
for x in liste:
  print(x)

Bu konuya daha sonra döngüler kısmında kapsamlı bir şekilde değinilecektir.
 

Bir Değerin Listede Var Olup Olmadığını Kontrol Etmek

Bunun için in komutunu kullanırız. değer in liste sorgusu eğer listede bu değer varsa True, yoksa False olarak döner:
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz"]
if "elma" in liste
   print("Evet, elma listede var!")

Bir Dizenin Kaç Elemanlı Olduğunu Bulmak

Dizelerin eleman sayısı yani boyutu/genişliği len() fonksiyonu ile tespit edilebilir:
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz"]
print(len(liste))

Dizeye Değer Eklemek

Dizeye yeni bir değer eklemek için append() fonksiyonundan faydalanabiliriz. Değer, dizenin en sonuna eklenecektir.
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz"]
liste.append("kavun")
print(liste)

Eğer dize içerisinde belli bir sıraya değer eklenecekse insert() fonksiyonundan faydalanılır. Fonksiyonda kullanılacak iki parametreden biri kaçıncı sıraya yerleştirileceği, diğeri ise eklenecek değerdir. Eklendiği sıradan daha ileri bir sırada olan değerler bir kaydırılır.
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz"]
liste.insert(1, "kavun")
print(liste)

Dizeden Bir Değeri Silmek

Bunun için remove() fonksiyonu kullanılır. Parantez içinde silinecek değer belirtilir:
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz", "kavun"]
liste.remove("kavun")
print(liste)

Eğer dizenin belli bir sırasındaki nesneyi sileceksek pop() fonksiyonundan faydalanabiliriz. Parantez içinde sıra numarası belirtebiliriz. Eğer hiçbir şey belirtmezsek dizenin en sonundaki nesne silinir.
 

PYTHON Kodu

liste = ["elma", "muz", "kiraz", "kavun"]
liste.pop()
print(liste)

Sırası belli bir değer silerken del özelliğinden faydalanabiliriz. Bu ifadeden sonra dizenin adı ve köşeli parantez içinde sırası yazılır.
 

PYTHON Kodu

meyveler = ["armut", "kiraz", "çilek"]
del meyveler[0]
print(meyveler)

Yukarıdaki kod çalıştırıldığında "armut" silinecek ve dize "kiraz" ve "çilek" olmak üzere iki elemana düşecektir. del ile tüm dizedeki elemanları temizlemek de mümkün. Bunun için index belirtmemeniz yeterli:
 

PYTHON Kodu

meyveler = ["armut", "kiraz", "çilek"]
del meyveler

Yukarıda belirtilen şekilde kullanıldığında dize tamamen tanımsız (undefined) hale gelir. Eğer aynı zamanda dizeyi bu durumdan korumak istiyorsanız clear() yöntemini kullanabilirsiniz:
 

PYTHON Kodu

meyveler = ["armut", "kiraz", "çilek"]
meyveler.clear();
print(meyveler)

Listeleri Kopyalamak

Bunun için copy() yöntemini kullanabilirsiniz.
 

PYTHON Kodu

meyveler = ["armut", "kiraz", "çilek"]
yeniliste = meyveler.copy();
print(yeniliste)

Uyarı: Listeleri liste1 = liste2 yazarak kopyalayamazsınız. Çünkü bunu yaparsanız liste1, liste2'nin referansı olacak ve liste2'de yapılan değişiklikler liste1 için de geçerli olacaktır.

Liste kopyalamak için list() sınıfından da faydalanabilirsiniz.
 

PYTHON Kodu

meyveler = ["armut", "kiraz", "çilek"]
yeniliste = list(meyveler)
print(yeniliste)

Listeleri Birleştirmek

Python'da iki veya daha fazla listeyi birleştirmek için bazı yöntemler var. Bunlardan biri artı (+) operatörünü kullanmaktır:
 

PYTHON Kodu

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list3 = list1 + list2
print(list3)

Eğer tek tek değerleri eklemek isterseniz for ile bir listeyi sıralayıp diğerinden append() ile değerler ekleyebilirsiniz:
 

PYTHON Kodu

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

for x in list2:
  list1.append(x)

print(list1)

Diğer bir yöntem extend() yöntemini kullanmaktır:
 

PYTHON Kodu

list1 = ["a", "b" , "c"]
list2 = [1, 2, 3]

list1.extend(list2)
print(list1)

list() Sınıfı İle Yeni Liste Oluşturmak

Normalde liste oluştururken dize = ["a", "b" , "c"] yeterlidir. Ancak list() kullanarak da listeler oluşturulabilir. Aşağıda buna bir örnek var:
 

PYTHON Kodu

meyveler = list(("elma", "muz", "kiraz")) # dikkat! parantezler köşeli değil
print(meyveler)

Diğer list fonksiyonları: count(), reverse() ve sort() sonraki derslerimizde anlatılacaktır.

 

Python Tuple

Python'daki liste türlerinden bir diğeri tuple dir. Bir önceki derste anlatılan list'ten farklı olarak değiştirilemez, ilk tanımlandığı şekilde kalır. Bu dizelere ekleme, silme, sıra (index) değiştirme işlemi de yapılamaz.

İlk tanımlama yapılırken tuple nesnelerine parantez içinde yer verilir.
 

Phyton Kodu

ornekTuple = ("muz", "elma", "kiraz")
print(ornekTuple)

Bir önceki dersimizde list için anlattığımız tüm özellikler (nesnelere erişim, tersten erişim, aralık belirtme vb.) bu tür için de geçerlidir. Makalenin diğer kısımlarında list'ten farklı yanları açıklanacaktır.
 

Tuple Değerleri Değiştirmek

Yukarıda bahsedildiği gibi tuple içindeki değerler değiştirilemez. Bu tarz bir işlem yapmak için öncelikle tuple list türüne dönüştürülmeli, ardından değişiklik yapıldıktan sonra yeni bir tuple oluşturulmalıdır:
 

Phyton Kodu

x = ("muz", "elma", "kiraz")
y = list(x)
y[1] = "kiwi"
x = tuple(y)

print(x)

Örnek kodu yorumlamak istersek; x adlı tuple y adlı listeye dönüştürülmüş. Ardından 1. eleman "kiwi" olarak değiştirilmiş. Sonra liste tekrar tuple türüne dönüştürülmüş.
 

Tek Elemanlı Tuple Oluşturmak

Eğer tuple türü dizemiz içinde tek bir eleman olacaksa tanımlarken ilk nesneden sonra virgül kullanılmalıdır. Bu kullanılmazsa string türde bir değişken elde edilmiş olur.
 

Phyton Kodu

#Bir tuple:
thistuple = ("elma",)
print(type(thistuple))

#Bir tuple degil, bir string:
thistuple = ("elma")
print(type(thistuple))

Birden Fazla Tuple Birleştirmek

Bu işlem için iki tuple artı (+) işareti ile toplanarak her iki dizeyi içeren yeni bir tuple elde edilebilir.
 

Phyton Kodu

tuple1 = ("a", "b" , "c")
tuple2 = (1, 2, 3)

tuple3 = tuple1 + tuple2
print(tuple3)

Yapıcı (Constructor) Kullanarak Tuple Oluşturmak

Alışılagelmiş ("a", "b" , "c") yapısı yerine tuple() nesnesini kullanarak tuple oluşturulabilir.
 

Phyton Kodu

ornekTuple = tuple(("elma", "muz", "kiraz")) # iki parantezli olduğunu unutmayın
print(ornekTuple)

NOT: tuple'ın eleman sayısını elde etmek için len() fonksiyonu kullanılabilir.

Python Set

Python'da set yine bir dize türüdür. Bu türün özelliği sıralanamaz olmasıdır. Set, bir veri yığınıdır. Ancak bu verilere erişim sıra (index) yoluyla sağlanamamaktadır.

Bir set tanımlarken küme parantezi kullanılır.
 

Python Kodu

ornekSet = {"elma", "muz", "kiraz"}
print(ornekSet)

Python List için geçerli özelliklerin çoğu set için de geçerlidir. Aşağıda set'in list'ten farklı yanları belirtilmiştir:
 

Nesnelere Erişmek

UYARI: set sıralanamaz olduğu için hangi elemanın hangi sırada olduğu asla bilinemez ve sıra numarası yazılarak elde edilemez.

Ancak for döngüsü ile nesneleri tek tek kontrol edebilir;
 

PYTHON Kodu

ornekSet = {"elma", "muz", "kiraz"}

for x in ornekSet:
  print(x)

Ya da in sorgusu ile dizede aradığınız değer olup olmadığı öğrenilebilir:
 

PYTHON Kodu

ornekSet = {"elma", "muz", "kiraz"}

print("muz" in ornekSet)

Set Türü Dizelere Nesne Eklemek

set yığınına veri eklemek için add(nesne) özelliğinden faydalanabilirsiniz:
 

PYTHON Kodu

ornekSet = {"elma", "muz", "kiraz"}
ornekSet.add("portakal")
print(ornekSet)

Birden fazla nesne eklemek için update([nesneler]) özelliğinden faydalanabilirsiniz:
 

PYTHON Kodu

ornekSet = {"elma", "muz", "kiraz"}
ornekSet.update(["portakal", "mango", "üzüm"])
print(ornekSet)

Set Türü Dizelerden Nesne Silmek

Var olan bir elemanı, set yığınından silmek istiyorsak remove(nesne) özelliğini kullanabiliriz:
 

PYTHON Kodu

ornekSet = {"elma", "muz", "kiraz"}
ornekSet.remove("elma")
print(ornekSet)

Eğer silmek istediğimiz nesne yoksa remove() özelliği hata verecektir. Bu nedenle nesnenin dizede olup olmadığından emin değilsek remove() yerine discard() kullanmalıyız:
 

PYTHON Kodu

ornekSet = {"elma", "muz", "kiraz"}
ornekSet.discard("portakal")
print(ornekSet)

pop() özelliğini kullanarak set içindeki son nesne silinebilir. Ancak set'in sıralanamaz olduğunu unutmayın. Yani sildiğiniz nesnenin ne olduğunu bilemezsiniz.
 

PYTHON Kodu

ornekSet = {"elma", "muz", "kiraz"}
ornekSet.pop()
print(ornekSet)

Set içindeki nesneleri temizlemek için clear(), set'i tamamen kaldırmak ve tanımsız hale getirmek için del kullanılabilir:
 

PYTHON Kodu

ornekSet = {"apple", "banana", "cherry"}

ornekSet.clear() # tüm nesneleri siler

print(ornekSet) #hata vermez

del ornekSet # tanımsız hale getirir

print(ornekSet) #hata verir

Set Türü Dizeleri Birleştirmek

union() özelliği ile iki set birleştirilerek yeni bir set oluşturulabilir:
 

PYTHON Kodu

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set3 = set1.union(set2)
print(set3)

update() özelliği ile bir set içine başka bir set'in değerlerini ekleyebiliriz. Bu durumda yeni bir set oluşmaz. Aşağıdaki örnekte set1'in içine set2'nin nesneleri eklenecektir:
 

PYTHON Kodu

set1 = {"a", "b" , "c"}
set2 = {1, 2, 3}

set1.update(set2)
print(set1)

Yapıcı (Constructor) Kullanarak Set Oluşturmak

Set oluştururken { 1, 2, 3 } şeklinde belirtmek yerine set'in yapıcısını kullanabilirsiniz:
 

PYTHON Kodu

ornekset = set(("elma", "muz", "kiraz")) # çift parantezli
print(ornekset)

NOT: set'in eleman sayısını elde etmek için len() fonksiyonu kullanılabilir.

Python Dict

Python'da dict, ingilizcede sözlük anlamına gelen dictionary'nin kısaltması ile oluşturulmuş bir veriler topluluğudur (dize). Sıralanamaz ancak değiştirilebilir ve anahtarlarla çağırılabilir. Python'da dict oluştururken küme parantezi kullanılır ve her veri bir anahtar ve değerden oluşur. Bu veriler anahtar: değer şeklinde yazılır. Ayrıca veriler arasında mutlaka virgül kullanılır.
 

PYTHON Kodu

sozluk = {
  "uretici": "Renault",
  "model": "Clio",
  "yil": 2009
}
print(sozluk)

Dict İçerisindeki Verilere Erişmek

Sözlük içindeki nesnelere veri anahtar adını köşeli parantez arasında yazarak erişebilirsiniz:
 

PYTHON Kodu

x = sozluk["model"]

Ayrıca get() özelliğini kullanarak da veriye erişebilirsiniz.
 

PYTHON Kodu

x = sozluk.get("model")

Dict İçindeki Değerleri Değiştirmek

Dize içindeki bir nesnenin değerini köşeli parantez arasında referans anahtarını belirtip değiştirebilirsiniz:
 

PYTHON Kodu

otomobil = {
  "uretici": "Renault",
  "model": "Clio",
  "yil": 2009
}
otomobil["yil"] = 2020;
print(otomobil);

Dict İçerisinde Bulunan Tüm Nesneleri Yazdırmak

Sözlüğümüz içindeki tüm anahtar ve değerleri for döngüsü ile tek tek ele alabiliriz. Dönen değer anahtar adı olacaktır. Ancak anahtardaki veriyi de almanın yöntemi var. Şimdi örnekler üzerinden nesneleri nasıl yazdıracağımıza bakalım:
 

PYTHON Kodu

kisi = {
	"Adi": "Murat",
	"Soyadi": "Elicaliskan",
	"Yas": 37
}
for x in kisi:
  print(x)

Yukarıdaki kod çalıştırıldığı zaman ekrana "Adi", "Soyadi" ve "Yas" anahtarlarının döndüğü görülecektir.
 

PYTHON Kodu

kisi = {
	"Adi": "Murat",
	"Soyadi": "Elicaliskan",
	"Yas": 37
}
for x in kisi:
  print(kisi[x])

Yukarıdaki örnek çalıştırıldığında bu kez "Murat", "Elicaliskan" ve 37 şeklinde anahtarların değil de değerlerin ekrana yazdırıldığını görürüz.
 

PYTHON Kodu

kisi = {
	"Adi": "Murat",
	"Soyadi": "Elicaliskan",
	"Yas": 37
}
for x in kisi.values():
  print(x)

Bu örnekte yine verileri elde ettik. Bu kez dict'in values() özelliği ile değerleri çağırıp x değişkenine yükledik ve tek tek yazdırdık.
 

PYTHON Kodu

kisi = {
	"Adi": "Murat",
	"Soyadi": "Elicaliskan",
	"Yas": 37
}
for x, y in kisi.items():
  print(x, y)

Son örnekte hem anahtarları hem değerleri birlikte yazdırdık. Bunun için for döngüsünden sonra x, y kullandık ve dict'in items() özelliğini çağırdık.
 

Bir Anahtarın Olup Olmadığını Kontrol Etmek

Bunun için "anahtar" in dict yapısını kullanabiliriz.
 

PYTHON Kodu

otomobil = {
  "uretici": "Ford",
  "model": "Mustang",
  "yil": 1964
}
if "model" in otomobil:
  print("Evet; model, otomobil sözlüğünün bir anahtarıdır")

Sözlüğe Yeni Anahtar Eklemek

dict türü bir nesne içine yeni bir anahtar ve buna karşılık gelen veriyi eklemek için değişken adından hemen sonra köşeli parantez içinde yeni anahtar ve eşittirden sonra değerin yazılması yeterlidir.
 

PYTHON Kodu

gunler = {
	"Pazartesi": 1,
	"Salı": 2,
	"Çarşamba": 3
}
gunler["Perşembe"] = 4
print(gunler)

Bir Anahtarı Silmek

dict içerisindeki bir anahtarı silmek için pop(anahtar) yapısını kullanırız:
 

PYTHON Kodu

haftaici = {
	"Pazartesi": 1,
	"Salı": 2,
	"Çarşamba": 3,
	"Perşembe": 4,
	"Cuma": 5,
	"Cumartesi": 6
}
haftaici.pop("Cumartesi")
print(haftaici)

Son eklenen nesneyi silmek istiyorsan popitem() özelliğini kullanabiliriz.

Bir anahtarı silmek için del metodu da kullanılabilir:
 

PYTHON Kodu

haftaici = {
	"Pazartesi": 1,
	"Salı": 2,
	"Çarşamba": 3,
	"Perşembe": 4,
	"Cuma": 5,
	"Cumartesi": 6
}
del haftaici["Cumartesi"]
print(haftaici)

del kullandıktan sonra anahtar belirtmeyip dict adı yazılırsa tüm veriler silinir ve değişken tanımsız (undefined) bir ifade olur.
 

PYTHON Kodu

haftaici = {
	"Pazartesi": 1,
	"Salı": 2,
	"Çarşamba": 3,
	"Perşembe": 4,
	"Cuma": 5,
	"Cumartesi": 6
}
del haftaici
print(haftaici) # hata verir

Eğer bu şekilde sözlük değişkeninin tanımsız bir duruma düşmesini istemiyorsak, sözlük içindeki tüm anahtarları silmek için clear() özelliğini kullanmalıyız.
 

PYTHON Kodu

haftaici = {
	"Pazartesi": 1,
	"Salı": 2,
	"Çarşamba": 3,
	"Perşembe": 4,
	"Cuma": 5,
	"Cumartesi": 6
}
haftaici.clear()
print(haftaici)

Sözlüğü Kopyalamak

Basit bir şekilde dict1 = dict2 yazarak sözlük kopyalanamaz. Eğer bir sözlüğün aynısından elde etmek istiyorsan copy() özelliğini kullanmalıyız.
 

PYTHON Kodu

kisi = {
	"Adi": "Murat",
	"Soyadi": "Elicaliskan",
	"Yas": 37
}
yenikisi = kisi.copy()
print(yenikisi)

Ayrıca dict nesnesinin yapıcı (constructor) özelliğini kullanarak da bir sözlük başka bir değişkene kopyalanabilir:
 

PYTHON Kodu

kisi = {
	"Adi": "Murat",
	"Soyadi": "Elicaliskan",
	"Yas": 37
}
yenikisi = dict(kisi)
print(yenikisi)

İç İçe Sözlükler

Bir sözlük (dict) içerisinde başka sözlükler kullanabiliriz. Bunu örnek üzerinden anlatalım:
 

PYTHON Kodu

kisiler = {
	"murat": {
		"Adi": "Murat",
		"Soyadi": "Elicaliskan"
	},
	"yasemin": {
		"Adi": "Yasemin",
		"Soyadi": "Deha"
	}
}
print(kisiler)

Ya da tek tek sözlükler oluşturup bunları tek bir sözlük içinde yazabiliriz:
 

PYTHON Kodu

murat = {
	"Adi": "Murat",
	"Soyadi": "Elicaliskan"
}
yasemin = {
	"Adi": "Yasemin",
	"Soyadi": "Deha"
}
kisiler = {
	"murat": murat,
	"yasemin": yasemin
}
print(kisiler)

dict Yapıcı (Constructor) Metodu

Sözlük oluşturmak için {"anahtar1":"deger1", "anahtar2":"deger2"} şeklinde kullanmak yerine doğrudan dict nesnesi yaratmamızı sağlayacak yapıcı metodu kullanabiliriz.
 

PYTHON Kodu

otomobil = dict(uretici="Ford", model="Mustang", yil=1964)
print(otomobil)

Bu şekilde sözlükler oluştururken şu iki noktaya dikkat edin: 1- anahtarlar tırnak işaretleri arasında yazılmıyor. 2- iki nokta yerine eşittir kullanılıyor.

NOT: dict'in anahtar sayısını elde etmek için len() fonksiyonu kullanılabilir.

Kaynak

 

Yorumunuzu Ekleyin

Yükleniyor...