Diziler, programlamada birden fazla veriyi düzenli bir şekilde saklamak için kullanılan temel yapı taşlarından biridir. Bir dizi, benzer türdeki verileri tek bir çatı altında toplar ve bu veriler üzerinde toplu işlemler yapılmasına olanak tanır. Örneğin, bir öğrenci listesini, bir alışveriş sepetindeki ürünleri veya bir sensörden gelen ölçüm değerlerini saklamak için diziler kullanabilirsiniz.
Diziler, verileri depolamak ve organize etmek için harika araçlardır. Projelerde şu durumlarda sıklıkla tercih edilir:
- Veri Depolama ve Erişim: Verileri bir araya toplayıp sıralı bir şekilde erişmek gerektiğinde.
- Veri İşleme: Döngüler yardımıyla diziler üzerinde kolayca işlem yapabilirsiniz.
- Optimizasyon: Aynı türden birden fazla değişken tanımlamak yerine, bir dizi kullanarak kodunuzu daha temiz ve düzenli hale getirebilirsiniz.
Python’da “dizi” terimi genellikle listeler, tuple’lar, set’ler ve sözlükler gibi farklı veri yapılarını ifade eder. Bu veri yapılarından hangisini kullanacağınız, projenizin ihtiyaçlarına bağlıdır:
- Listeler: Sıralı ve değiştirilebilir veriler için.
- Tuple’lar: Sabit ve sıralı veriler için.
- Set’ler: Tekrarsız ve sırasız veriler için.
- Sözlükler: Anahtar-değer çiftleriyle veriyi ilişkilendirmek için.
Aşağıda bu dört temel veri yapısını detaylıca ele alıyoruz.
1. Listeler (Lists)
Python listeleri, birden fazla öğeyi bir arada depolamak için kullanılan sıralı ve değiştirilebilir veri yapılarıdır. Listeler kare parantezler []
içinde tanımlanır ve farklı türde veri tiplerini içerebilir.
Liste Özellikleri
- Sıralı yapıdadır. Listelerdeki öğeler eklenme sırasına göre dizilir.
- Değiştirilebilir içeriğe sahiptir. Listenin elemanlarını değiştirebilir, ekleyebilir veya silebilirsiniz.
- Farklı veri tiplerini kullanabilirsiniz. Aynı liste içinde sayılar, metinler ve hatta diğer listeler bulunabilir.
Liste Oluşturma
Bir liste oluştururken, öğeler köşeli parantezler [ ]
içine yazılır ve virgülle ,
ayrılır. Bu kodda meyveler
adlı bir liste oluşturuyoruz. Bu listede üç eleman bulunmaktadır: "elma"
, "muz"
, ve "kiraz"
1 | meyveler = ["elma", "muz", "kiraz"] |
1 2 | #LISTE ÇIKTISI: ["elma", "muz", "kiraz"] |
Listeye Eleman Ekleme
Python’da bir listeye yeni bir öğe eklemek için append
metodunu kullanabilirsiniz. append
metodu, listenin sonuna yeni bir öğe ekler. Örnek olarak, meyveler
listesine bir “portakal” eklemesi yapalım.
1 | meyveler.append("portakal") |
1 2 | #LISTE ÇIKTISI: ['elma', 'muz', 'kiraz', 'portakal'] |
Belirli Bir İndeksi Değiştirme
Python’da listeler indekslenir, yani her elemanın bir sıra numarası vardır. İndeksleme sıfırdan başlar, bu da ilk elemanın indeks numarasının 0 olduğu anlamına gelir.
["elma", "muz", "kiraz", "portakal"]
Bir listedeki belirli bir elemanı değiştirmek için doğrudan indeksi kullanabilirsiniz. Bizim oluşturduğumuz listenin 1. indeksinde “muz” elemanı vardı. Aşağıda oluşturduğumuz kod ile 1. indeks elemanını “kivi” olarak değiştiriyoruz.
1 | meyveler[1] = "kivi" |
“Kivi” elemanıyla birlikte dizinin son hali şu şekilde olacaktır:
1 2 | #LISTE ÇIKTISI: ['elma', 'kivi', 'kiraz', 'portakal'] |
Liste Elemanlarını Silme
Bir elemanı silmek için remove()
metodunu kullanabilirsiniz. Bu yöntem, belirtilen elemanı listeden çıkarır.
1 | meyveler.remove("kiraz") |
1 2 | #LISTE ÇIKTISI: ['elma', 'kivi', 'portakal'] |
Listeyi Tersine Çevirme
Listenin sırasını tersine çevirmek için reverse()
metodunu kullanabilirsiniz.
1 | meyveler.reverse() |
1 2 | #LISTE ÇIKTISI: ['portakal', 'kivi', 'elma'] |
Listeyi Sıralama
Listenin elemanlarını alfabetik veya sayısal sıraya göre sıralamak için sort()
metodunu kullanabilirsiniz.
1 | meyveler.sort() |
1 2 | #LISTE ÇIKTISI: ['elma', 'kivi', 'portakal'] |
2. Tuple’lar (Demetler)
Tuple’lar, listelere benzeyen ancak değiştirilemez veri yapılarıdır. Parantezler ()
ile tanımlanır ve elemanları sabit olduğu için daha performanslı bir veri yapısıdır.
Tuple Özellikleri
- Değiştirilemez: Bir kez oluşturulduktan sonra elemanları değiştirilemez.
- Sıralı: Elemanlar belirli bir sırada saklanır.
- Farklı veri tipleri: Aynı tuple içinde farklı veri tipleri bulunabilir.
Tuple Oluşturma
Bir tuple oluştururken, öğeler parantezler ( )
içine yazılır ve virgülle ,
ayrılır. Bu kodda demet adlı bir tuple oluşturuyoruz. Bu tupleda üç eleman bulunmaktadır: "elma"
, "muz"
, ve "kiraz"
1 | demet = ("elma", "muz", "kiraz") |
1 2 | TUPLE ÇIKTISI: ('elma', 'muz', 'kiraz') |
Tuple’da belirli bir elemana indeks kullanarak erişebilirsiniz. İndeksleme, tuple içindeki her bir elemanın sıra numarasıyla belirlenmesini sağlar ve sıfırdan başlar.
1 | print(demet[1]) |
print
fonksiyonu kullanarak demet
tuple’ının ikinci öğesini (indeks numarası 1 olan öğe) ekrana yazdırır. Python’da tuple’lar sıfırdan başlayarak indekslendiği için, demet[1]
ifadesi tuple’ın ikinci öğesi olan "muz"
‘u gösterir.
İndeksleme Özet:
demet[0]
: İlk eleman olan'elma'
.demet[1]
: İkinci eleman olan'muz'
.demet[2]
: Üçüncü eleman olan'kiraz'
.
Tuple Uzunluğunu Bulma
Tuple’ın eleman sayısını öğrenmek için len() fonksiyonunu kullanabilirsiniz.
1 | print(len(demet)) |
1 2 | TUPLE ÇIKTISI: 3 |
3. Set’ler (Küme)
Set’ler, tekrarsız öğelerden oluşan, sırasız ve değiştirilebilir veri yapılarıdır. Küme oluşturmak için süslü parantezler {}
kullanılır.
Set’ler Python’da benzersiz (unique) ve sırasız (unordered) elemanlar topluluğudur. Yani, set içindeki her eleman tekil olmalıdır ve sırası önemli değildir. Örneğin, aynı set’i {}
içinde “kiraz”, “muz”, “elma” olarak da yazdırabiliriz ve bu yine aynı set olurdu.
Set’ler, benzersiz elemanların bir araya gelmesi gerektiğinde ve elemanların sırasının önemli olmadığı durumlarda çok kullanışlıdır.
Set Özellikleri
- Tekrarsız özelliktedir. Aynı değerden birden fazla bulunmaz.
- Sırasızdır. Elemanlar belirli bir sırada tutulmaz.
- Değiştirilebilir niteliktedir. Set’lere eleman eklenebilir veya silinebilir.
Set Oluşturma
meyve_seti
adında bir set oluşturalım ve içerisine elemanları ekleyelim. Set oluşturulurken elemanlar süslü parantez { }
ile belirtilir.
1 | meyve_seti = {"elma", "muz", "kiraz"} |
1 2 | SET ÇIKTISI: {"elma", "muz", "kiraz"} |
Set’e Eleman Ekleme
Bir sete yeni bir eleman eklemek için add()
metodunu kullanabilirsiniz.
1 | meyve_seti.add("portakal") |
1 2 | SET ÇIKTISI: {'elma', 'kiraz', 'muz', 'portakal'} |
Set Eleman Silme
Set’ten bir elemanı kaldırmak için remove()
metodunu kullanabilirsiniz.
1 | meyve_seti.remove("kiraz") |
1 2 | SET ÇIKTISI: {'elma', 'muz', 'portakal'} |
Küme İşlemleri
Küme işlemleri, set’lerle yapılan bu matematiksel operasyonlar, veri analizinden algoritma geliştirmeye kadar pek çok alanda kullanılır ve oldukça faydalıdır. Temel olarak, kümeleri ve onların üzerindeki işlemleri iyi anlamak, programlama becerilerini güçlendirir.
- Set Birleşimi (Union)Birleşim işlemi, iki veya daha fazla kümenin elemanlarını bir araya getirir ve tekrar eden elemanları sadece bir kez alır. Yani, her eleman yalnızca bir kez yer alır.1234A = {1, 2, 3}B = {3, 4, 5}birlesim = A.union(B)print(birlesim) # {1, 2, 3, 4, 5}
Bu örnekte,A
veB
kümelerinin birleşimi{1, 2, 3, 4, 5}
olur. Her iki kümede de bulunan “3” elemanı, birleşimde sadece bir kez yer alır.
- Set Kesişimi (Intersection)Kesişim işlemi, iki kümenin ortak elemanlarını içerir. Yani, her iki kümede de bulunan elemanlar kesişimde yer alır.1234A = {1, 2, 3}B = {3, 4, 5}kesisim = A.intersection(B)print(kesisim) # {3}
Bu örnekte,A
veB
kümelerinin kesişimi{3}
olur. Yani, sadece her iki kümede de ortak olan elemanlar kesişimde yer alır.
- Fark (Difference)
Bir kümenin, diğer kümede olmayan elemanlarını içerir.12fark = A.difference(B)print(fark) # {1, 2}
Bu işlem, bir kümede olup diğer kümede olmayan elemanları içerir.A.difference(B)
ifadesi,A
kümesinde olupB
kümesinde olmayan elemanları döner.
- Simetrik Fark (Symmetric Difference)
İki kümenin kesişiminde olmayan elemanları içerir.12simetrik_fark = A.symmetric_difference(B)print(simetrik_fark) # {1, 2, 4, 5}
Bu işlem, iki kümenin kesişiminde olmayan elemanları içerir. Yani, her iki kümede de bulunmayan, sadece birinde olan elemanlar simetrik farkta yer alır.A.symmetric_difference(B)
ifadesi, bu elemanları döner.
4. Sözlükler (Dictionaries)
Sözlükler, anahtar-değer (key-value) çiftlerini saklayan, sırasız ve değiştirilebilir veri yapılarıdır. Sözlükler süslü parantezler {}
ile tanımlanır.
Sözlük Özellikleri
- Anahtar-değer yapısı: Veri bir anahtara (key) bağlı olarak saklanır.
- Değiştirilebilir: Yeni anahtar-değer çiftleri eklenebilir veya mevcut olanlar güncellenebilir.
- Anahtarlar tekrarsız: Aynı anahtar birden fazla kez kullanılamaz.
Sözlük Örnekleri ve Kullanımları. Sözlükler (Dictionaries)
Sözlükler, anahtar-değer (key-value) çiftlerini saklayan, sırasız ve değiştirilebilir veri yapılarıdır. Sözlükler süslü parantezler {}
ile tanımlanır.
Sözlük Özellikleri
- Anahtar-değer yapısı: Veri bir anahtara (key) bağlı olarak saklanır.
- Değiştirilebilir: Yeni anahtar-değer çiftleri eklenebilir veya mevcut olanlar güncellenebilir.
- Anahtarlar tekrarsız: Aynı anahtar birden fazla kez kullanılamaz.
Sözlük Oluşturma
Sözlükler, anahtar ve değer çiftlerini süslü parantez içinde tanımlayarak oluşturulur. Aşağıdaki örnekte, bir öğrencinin bilgilerini tutan bir sözlük oluşturulmuştur.
1 | ogrenci = {"isim": "Ali", "yas": 20, "not": 85} |
1 2 | SOZLUK ÇIKTISI: {"isim": "Ali", "yas": 20, "not": 85} |
Anahtarla Değere Erişim
Bir anahtarın değerine erişmek için, anahtarın adını köşeli parantezler []
içinde kullanabilirsiniz. Örneğin, “isim” anahtarının değerine erişmek için aşağıdaki gibi yazılır:
1 | print(ogrenci["isim"]) |
1 2 | SOZLUK ÇIKTISI: 'Ali' |
Yeni Anahtar-Değer Ekleme
Sözlüğe yeni bir anahtar-değer çifti eklemek için, yeni anahtar ismini köşeli parantezlerle yazıp ona bir değer atayabilirsiniz.
1 | ogrenci["sehir"] = "Denizli" |
1 2 | SOZLUK ÇIKTISI: {'isim': 'Ali', 'yas': 20, 'not': 85, 'sehir': 'Denizli'} |
Anahtar-Değer Güncelleme
Bir anahtarın değeri güncellenebilir. Örneğin, “yas” anahtarının değerini değiştirebiliriz:
1 | ogrenci["yas"] = 21 |
1 2 | SOZLUK ÇIKTISI: {'isim': 'Ali', 'yas': 21, 'not': 85, 'sehir': 'Denizli'} |
Anahtar Silme
Sözlükten bir anahtar-değer çifti silmek için del
anahtar kelimesi kullanılabilir:
1 | del ogrenci["not"] |
1 2 | SOZLUK ÇIKTISI: {'isim': 'Ali', 'yas': 21, 'sehir': 'Denizli'} |