Python Veri Yapıları: Listeler, Sözlükler ve Set İçin 8 Örnek

Python Veri Yapıları

Python Veri Yapıları: Listeler, Sözlükler ve Set İçin 8 Örnek

Python Veri Yapıları
5 dk okuma süresi
Bu makale, adım adım programlama öğrenme hedefiyle Python'un üç temel veri yapısı—listeler, sözlükler ve setler—için 8 pratik örnek sunar ve seçim rehberi sağlar.
Python Veri Yapıları: Listeler, Sözlükler ve Set İçin 8 Örnek

Giriş

Bu kılavuz, "adım adım programlama öğrenme" amacına uygun olarak Python'un en sık kullanılan üç veri yapısını—listeler, sözlükler ve setler—tanıtır ve her birine yönelik 8 pratik örnek sunar. Örnekler kısa, uygulanabilir ve günlük kullanım senaryolarına yöneliktir. Temel Python bilgisine sahipseniz bu rehberle veri yapıları arasındaki farkı ve hangi durumda hangisini seçmeniz gerektiğini hızlıca görebilirsiniz.

Temel Tanımlar

  • Liste (list): Sıralı ve değiştirilebilir bir koleksiyondur; aynı listede farklı veri tipleri bulunabilir ve tekrar eden elemanlara izin verilir. (Kaynak: Kod Öğreniyorum).
  • Sözlük (dict): Anahtar-değer çiftleriyle çalışan bir eşleme yapısıdır; anahtarlar benzersiz olmalı ve hashlenebilir olmalıdır. (Kaynak: Kod Öğreniyorum).
  • Set (set): Sırasız ve tekrarsız öğelerden oluşan bir koleksiyondur; kümeler üzerinde birleşim, kesişim ve fark gibi işlemler için uygundur. (Kaynak: Kod Öğreniyorum).

Hangi Durumda Hangi Veri Yapısını Seçmelisiniz?

  1. Eğer öğelerin sırası önemliyse ve tekrar eden öğelere izin vermek istiyorsanız liste kullanın.
  2. Anahtar-değer eşlemesi ile hızlı erişim ve kavramsal modelleme gerekiyorsa sözlük tercih edin.
  3. Her öğeden yalnızca birer tane olmalıysa veya küme teorisi işlemleri (birleşim/kesişim/fark) yapacaksanız set kullanın.

Bu seçimi yaparken pratik kararlar, veri boyutu ve erişim örüntüleri önemlidir; temel bilgiler için W3Schools'un listeler rehberine de bakabilirsiniz: W3Schools - Python Lists.


8 Pratik Örnek (Adım Adım)

Aşağıda 3 liste, 3 sözlük ve 2 set örneği verilmiştir. Her örnekte kısa açıklama, adımlar ve mümkünse beklenen çıktı yer alır.

Örnek 1 — Basit Görev Listesi (Liste: append / remove)

Açıklama: Günlük yapılacaklar listesi oluşturma, öğe ekleme ve çıkarma.

Adımlar:

  • Başlangıç listesi oluşturun.
  • Yeni görev ekleyin (append).
  • Tamamlanan görevi listeden çıkarın (remove).

Kod:
tasks = ["alışveriş", "e-posta", "spor"]
tasks.append("ödev")
tasks.remove("e-posta")
print(tasks)

Beklenen çıktı: ['alışveriş', 'spor', 'ödev']

Örnek 2 — Liste Üzerinde Hızlı Dönüşüm (List Comprehension)

Açıklama: Bir sayılar listesinden çift sayıların karelerini almak.

Adımlar: Orijinal listeyi filtrele ve dönüştür.

Kod:
numbers = [1, 2, 3, 4, 5]
squares = [n*n for n in numbers if n % 2 == 0]
print(squares)

Beklenen çıktı: [4, 16]

Örnek 3 — Matris Transpozu (İç içe Listeler)

Açıklama: 2B liste (matris) kullanarak transpoz almak.

Adımlar: Satırları sütunlara çevirin.

Kod:
matrix = [[1,2,3],[4,5,6],[7,8,9]]
transpose = [[row[i] for row in matrix] for i in range(3)]
print(transpose)

Beklenen çıktı: [[1,4,7], [2,5,8], [3,6,9]]


Örnek 4 — Kullanıcı Profili (Sözlük: Anahtar-Değer)

Açıklama: Bir kullanıcının özelliklerini anahtar-değer çiftleriyle saklama.

Adımlar: Sözlük oluşturun, erişin, gerektiğinde güncelleyin.

Kod:
user = {"isim": "Ahmet", "yas": 30, "beceriler": ["python", "sql"]}
print(user["isim"])

Beklenen çıktı: Ahmet

Örnek 5 — Kelime Sayacı (Sözlük Kullanarak Frekans Hesabı)

Açıklama: Bir metindeki kelimelerin kaç kere geçtiğini saymak.

Adımlar: Boş bir sözlük başlatın, liste üzerinde dönün ve counts.get ile artırın.

Kod:
words = ["elma", "armut", "elma", "armut", "muz"]
counts = {}
for w in words:
counts[w] = counts.get(w, 0) + 1
print(counts)

Beklenen çıktı: {'elma': 2, 'armut': 2, 'muz': 1}

Örnek 6 — Varsayılan Ayarları Birleştirme (setdefault ile Sözlük)

Açıklama: Bir yapılandırma sözlüğüne eksik varsayılanları eklemek.

Adımlar: defaults sözlüğündeki değerleri config içine setdefault ile yerleştirin.

Kod:
defaults = {"tema": "açık", "dil": "tr"}
config = {"dil": "en"}
for k, v in defaults.items():
config.setdefault(k, v)
print(config)

Beklenen çıktı: {'dil': 'en', 'tema': 'açık'}


Örnek 7 — Benzersiz Öğeler ve Üyelik Testi (Set)

Açıklama: Bir listeden tekrar eden öğeleri çıkarmak ve öğenin kümede olup olmadığını kontrol etmek.

Adımlar: Listeyi sete çevirin, üyelik testi yapın.

Kod:
items = [1, 2, 2, 3, 4, 4, 5]
unique = set(items)
print(unique)
print(3 in unique)

Beklenen çıktı örneği: {1, 2, 3, 4, 5} ve True

Örnek 8 — Etiket/Kategori Kümelerinde Kesişim ve Birleşim (Set Operasyonları)

Açıklama: İki kullanıcının yetenek etiketleri arasındaki ortak becerileri bulma veya bütün becerileri birleştirme.

Adımlar: Küme kesişimi (&), birleşimi (|) ve farkı (-) kullanın.

Kod:
a = {"python", "java", "c"}
b = {"python", "go", "rust"}
print(a & b) # kesişim
print(a | b) # birleşim
print(a - b) # a'da olup b'de olmayanlar

Beklenen örnek çıktı: {'python'} / {'python', 'java', 'c', 'go', 'rust'} / {'java', 'c'}


İpuçları ve Dikkat Edilmesi Gerekenler

  • Sözlük anahtarları hashlenebilir olmalıdır; örneğin listeler anahtar olamazken string ve tuple olabilir (immutable veri tipleri daha uygundur). (Kaynak: Kod Öğreniyorum).
  • Listeleri sıralama, dilimleme ve indeksleme gibi işlemler için kullanın; çok sık ekleme/çıkarma yapacağınız yerlerde kullanım alışkanlıklarınıza göre alternatif yapıları değerlendirin.
  • Set'ler aynı elemandan yalnızca bir tane tutar; tekrar eden öğeleri temizlemek için hızlı bir yöntem sağlar.
  • Karmaşık frekans analizleri için Python'un collections.Counter yapısı gibi hazır araçlara bakabilirsiniz. Bu rehber temel kullanım örnekleri hedefler.

Kısa Karar Kontrol Listesi

  • Öğeler sıralı mı? → Liste.
  • Anahtar-değer ilişkisi mi? → Sözlük.
  • Tekrar eden öğeler önemli değil mi ve küme işlemleri mi yapacaksınız? → Set.

Kaynaklar ve İleri Okuma

Sonuç

Bu rehberde listeler, sözlükler ve setler için 8 pratik örnek sunduk ve hangi durumda hangi veri yapısını tercih etmeniz gerektiğini gösteren hızlı bir kontrol listesi paylaştık. Kaynaklardaki temel tanımları ve örnekleri inceleyerek kendi projelerinizde bu yapıları güvenle kullanabilirsiniz. Daha ileri konular (performans optimizasyonu, büyük veri setlerinde bellek yönetimi vb.) için ilgili dökümantasyon ve kılavuzlara başvurmanız yararlı olacaktır.