Python'da Veri Yapıları

 

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.


python
Copy
Download
my_list = [1, 2, 3, "Python", 3.14]

Liste Operasyonları:

  • Eklemeappend()insert()extend()

    python
    Copy
    Download
    my_list.append(4)           # Sonuna ekler
    my_list.insert(1, "new")    # Belirtilen indekse ekler
    my_list.extend([5, 6])      # Başka bir listeyi ekler
  • Silmeremove()pop()del

    python
    Copy
    Download
    my_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 siler
  • Sıralamasort()reverse()sorted()

    python
    Copy
    Download
    numbers = [3, 1, 4, 2]
    numbers.sort()              # Sıralar (yerinde)
    sorted_numbers = sorted(numbers)  # Yeni sıralanmış liste döndürür
  • Dilimleme (Slicing):

    python
    Copy
    Download
    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.

python
Copy
Download
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:

    python
    Copy
    Download
    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.

python
Copy
Download
my_dict = {"name": "Alice", "age": 25, "city": "New York"}

Sözlük Operasyonları:

  • Erişim:

    python
    Copy
    Download
    print(my_dict["name"])      # Alice
    print(my_dict.get("age"))   # 25
    print(my_dict.get("country", "USA"))  # Eğer yoksa varsayılan değer
  • Ekleme/Değiştirme:

    python
    Copy
    Download
    my_dict["email"] = "alice@example.com"  # Ekleme
    my_dict["age"] = 26                     # Güncelleme
  • Silme:

    python
    Copy
    Download
    del my_dict["city"]        # Silme
    age = my_dict.pop("age")   # Siler ve değeri döndürür
  • Yineleme:

    python
    Copy
    Download
    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.

python
Copy
Download
my_set = {1, 2, 3, 3, 4}  # {1, 2, 3, 4}

Küme Operasyonları:

  • Temel İşlemler:

    python
    Copy
    Download
    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:

    python
    Copy
    Download
    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

    python
    Copy
    Download
    from collections import namedtuple
    Point = namedtuple('Point', ['x', 'y'])
    p = Point(11, y=22)
  • defaultdict: Varsayılan değerli sözlük

    python
    Copy
    Download
    from collections import defaultdict
    dd = defaultdict(int)  # Varsayılan 0
  • Counter: Eleman sayımı

    python
    Copy
    Download
    from collections import Counter
    cnt = Counter(['a', 'b', 'a', 'c'])
    print(cnt['a'])  # 2
  • deque: Çift uçlu kuyruk

    python
    Copy
    Download
    from collections import deque
    d = deque([1, 2, 3])
    d.appendleft(0)
    d.pop()

Veri Yapıları Karşılaştırması:

ÖzellikListTupleDictSet
SıralıEvetEvetHayırHayır
DeğiştirilebilirEvetHayırEvetEvet
Tekrarlı elemanEvetEvetHayırHayır
Anahtar erişimiHayırHayırEvetHayır

Bu veri yapılarını doğru şekilde kullanmak, Python'da verimli ve okunabilir kod yazmanın temelini oluşturur.


Yorumlar

Bu blogdaki popüler yayınlar

YouTube ile Web Sitesi SEO'su: Kapsamlı Strateji Rehberi

Uygulama Reklam Butonu