Python'da Veri Yapıları: Detaylı Anlatım
Python'da temel veri yapıları listeler (lists), demetler (tuples), sözlükler (dictionaries), kümeler (sets) ve diğer özel veri yapılarıdır. İşte bu veri yapılarının detaylı açıklaması:
1. Listeler (Lists)
Listeler sıralı, değiştirilebilir (mutable) ve farklı veri tiplerini içerebilen koleksiyonlardır.
my_list = [1, 2, 3, "Python", 3.14]Liste Operasyonları:
Ekleme:
append(),insert(),extend()my_list.append(4) # Sonuna ekler my_list.insert(1, "new") # Belirtilen indekse ekler my_list.extend([5, 6]) # Başka bir listeyi eklerSilme:
remove(),pop(),delmy_list.remove("Python") # Değere göre siler my_list.pop(2) # İndekse göre siler ve döndürür del my_list[0] # İndekse göre silerSıralama:
sort(),reverse(),sorted()numbers = [3, 1, 4, 2] numbers.sort() # Sıralar (yerinde) sorted_numbers = sorted(numbers) # Yeni sıralanmış liste döndürürDilimleme (Slicing):
my_list = [0, 1, 2, 3, 4, 5] print(my_list[1:4]) # [1, 2, 3] print(my_list[::2]) # [0, 2, 4] print(my_list[::-1]) # [5, 4, 3, 2, 1, 0] (ters çevirme)
2. Demetler (Tuples)
Demetler sıralı, değiştirilemez (immutable) koleksiyonlardır.
my_tuple = (1, 2, 3, "Python")Tuple Özellikleri:
Değiştirilemez (immutable)
Daha hızlı erişim
Sözlük anahtarı olarak kullanılabilir
Paketleme (packing) ve açma (unpacking) özelliği:
a, b, c, d = my_tuple # Unpacking new_tuple = a, b, c # Packing
3. Sözlükler (Dictionaries)
Anahtar-değer çiftlerinden oluşan, sırasız (Python 3.7+ sürümlerinde ekleme sırasını korur), değiştirilebilir koleksiyonlardır.
my_dict = {"name": "Alice", "age": 25, "city": "New York"}Sözlük Operasyonları:
Erişim:
print(my_dict["name"]) # Alice print(my_dict.get("age")) # 25 print(my_dict.get("country", "USA")) # Eğer yoksa varsayılan değerEkleme/Değiştirme:
my_dict["email"] = "alice@example.com" # Ekleme my_dict["age"] = 26 # GüncellemeSilme:
del my_dict["city"] # Silme age = my_dict.pop("age") # Siler ve değeri döndürürYineleme:
for key in my_dict: # Anahtarlar for value in my_dict.values(): # Değerler for key, value in my_dict.items(): # Anahtar-değer çiftleri
4. Kümeler (Sets)
Benzersiz elemanlardan oluşan, sırasız koleksiyonlardır.
my_set = {1, 2, 3, 3, 4} # {1, 2, 3, 4}Küme Operasyonları:
Temel İşlemler:
my_set.add(5) # Eleman ekleme my_set.remove(3) # Eleman silme (yoksa hata) my_set.discard(10) # Eleman silme (yoksa hata vermez)Küme İşlemleri:
A = {1, 2, 3} B = {3, 4, 5} print(A | B) # Birleşim: {1, 2, 3, 4, 5} print(A & B) # Kesişim: {3} print(A - B) # Fark: {1, 2} print(A ^ B) # Simetrik fark: {1, 2, 4, 5}
5. Diğer Veri Yapıları
collections Modülü:
namedtuple: Alan adları olan tuple
from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) p = Point(11, y=22)defaultdict: Varsayılan değerli sözlük
from collections import defaultdict dd = defaultdict(int) # Varsayılan 0Counter: Eleman sayımı
from collections import Counter cnt = Counter(['a', 'b', 'a', 'c']) print(cnt['a']) # 2deque: Çift uçlu kuyruk
from collections import deque d = deque([1, 2, 3]) d.appendleft(0) d.pop()
Veri Yapıları Karşılaştırması:
| Özellik | List | Tuple | Dict | Set |
|---|---|---|---|---|
| Sıralı | Evet | Evet | Hayır | Hayır |
| Değiştirilebilir | Evet | Hayır | Evet | Evet |
| Tekrarlı eleman | Evet | Evet | Hayır | Hayır |
| Anahtar erişimi | Hayır | Hayır | Evet | Hayır |
Bu veri yapılarını doğru şekilde kullanmak, Python'da verimli ve okunabilir kod yazmanın temelini oluşturur.
Hiç yorum yok:
Yorum Gönder