
Python Veri Yapıları, verileri düzenlemek, depolamak ve üzerinde işlem yapmak için kullanılan temel araçlardır. En çok kullanılan üç yapıyı—listeler (list), sözlükler (dict) ve setler (set)—bu rehberde kısa, uygulanabilir örneklerle açıklıyoruz. Temel açıklamalar Python resmi belgeleriyle uyumludur; detaylı teknik bilgi için Python belgelerine bakabilirsiniz (Python Veri Yapıları — 3.11 tutorial).
Listeler, bir dizi öğeyi sıralı şekilde saklamak için kullanılır. Öğelere indeksle erişebilir, ekleme ve silme yapabilirsiniz. Listelerin temel özellikleri Python belgelerinde açıklanmıştır (Python tutorial: Data Structures).
Örnek oluşturma ve temel işlemler (kısa gösterim):
Oluşturma: `liste = [1, 2, 3]`
Eklemek: `liste.append(4)` — sonuna ekler.
İndeksleme: `liste[0]` — ilk öğe; negatif indeks `liste[-1]` son öğeyi verir.
Slicing: `liste[1:3]` — alt-listeler almak için kullanılır.
List comprehension örneği (kısaca): `kareler = [x*x for x in range(6)]` — okunaklı ve kısa bir liste oluşturma şeklidir.
Sözlükler, anahtar–değer çiftleriyle veri saklamaya yarar. Anahtarlar benzersiz olmalıdır ve genelde hashlenebilir (ör. integer, string, tuple gibi değişmez türler). Sözlüklerin özellikleri ve yöntemleri Python belgelerinde açıklanmıştır (Gömülü Türler — stdtypes).
Temel kullanım:
Oluşturma: `sozluk = {'ad': 'Ayşe', 'yas': 30}`
Değer okuma: `sozluk['ad']` veya güvenli okuma için `sozluk.get('ad')`
Yeni anahtar ekleme/güncelleme: `sozluk['sehir'] = 'İstanbul'`
Python 3.7 ve sonrasında sözlüklerin ekleme sırasını koruduğu belgelenmiştir; yani ekleme sırasına bağlı işlemler için bu özellikten faydalanabilirsiniz (detay için: Python stdtypes).
Bir listedeki öğelerin kaç kere geçtiğini saymak için sözlük kullanabilirsiniz:
`counts = {}`
`for x in items:`
` counts[x] = counts.get(x, 0) + 1`
Bu yaklaşım, ek bir modül kullanmadan basit sayımlar yapmanızı sağlar.
Setler, aynı öğeden yalnızca bir tane içeren, sırasız koleksiyonlardır. Kümelerle yapılan birleşim, kesişim ve fark gibi işlemler setlerle doğrudan yapılabilir. Set ve frozenset özellikleri Python belgelerinde açıklanmıştır (Python tutorial: sets).
Temel kullanım:
Oluşturma: `s = {1, 2, 3}` veya boş set için `s = set()` (boş küme süslü parantezle değil `set()` ile oluşturulur).
Eleman ekleme: `s.add(4)`
Farklı operasyonlar: `s.union(t)`, `s.intersection(t)`, `s.difference(t)`
Setler üyelik testleri için idealdir: `if x in s:` kontrolü hızlıdır ve küme yapısının doğal avantajlarından faydalanır.
Bir listeden hızlıca tekrarları kaldırmak isterseniz `unique = list(set(liste))` kullanabilirsiniz. Bu yöntem elemanların sırasını korumaz; sırayı koruyarak deduplike etmek için aşağıdaki örnek uygundur:
`seen = set()`
`result = []`
`for x in liste:`
` if x not in seen:`
` seen.add(x)`
` result.append(x)`
Bu yöntem, hem yeniden edenleri kaldırır hem de orijinal sıralamayı korur.
| Yapı | Özellik | En uygun kullanım |
|---|---|---|
| List | Sıralı, değiştirilebilir, kopyalar/indeksleme | Sıra önemli olduğunda, indeks/konum bazlı işlemlerde |
| Dict | Anahtar–değer, benzersiz anahtarlar, hızlı anahtar araması | Lookup tablosu, yapılandırılmış veri (JSON benzeri) |
| Set | Benzersiz öğeler, sırasız, küme operasyonları | Üyelik testleri, küme aritmetiği, tekrarların kaldırılması |
Sözlük anahtarları ve set öğeleri hashlenebilir olmalıdır; bu nedenle genelde değişmez (immutable) türler kullanılır: sayılar, dizeler, ve değişmez tuple'lar. Değiştirilebilir türler (ör. list) doğrudan anahtar veya set öğesi olamaz. Veri modelinin detayları için Python dokümantasyonundaki data model sayfasına bakabilirsiniz.
Genel olarak sözlük ve set işlemleri hashing kullandığı için üyelik testleri ve anahtar aramaları uygulamada hızlıdır; detaylı performans ve sıralama teknikleri için Python belgelerindeki sıralama ve veri yapıları rehberlerini inceleyin (Sıralama teknikleri).
Bu kısa rehber, Python'da listeler, sözlükler ve setler için temel kavramları ve sık kullanılan örnekleri özetler. Daha derin teknik ayrıntılar, performans tartışmaları ve tüm metodların listesi için resmi Python dokümantasyonunu incelemenizi öneririm: Data Structures — Python Tutorial, Built-in Types — stdtypes ve Data Model.
Yorumlar