Tuple Decomposition: Kod Okunabilirliğini Artırma

Tuple decomposition (tuple açma), birden fazla değeri aynı anda değişkenlere atama işlemidir. Kod okunabilirliğini dramatik şekilde artırır ve hataları azaltır.

Geleneksel yöntemde indeks kullanarak erişirsiniz:

1kullanici = ("ahmet", 25, "istanbul")
2ad = kullanici[0]
3yas = kullanici[1]
4sehir = kullanici[2]
5
6print(f"{ad}, {yas} yaşında, {sehir}'de yaşıyor")

Beklenen çıktı:

1ahmet, 25 yaşında, istanbul'da yaşıyor

Tuple decomposition ile aynı işi çok daha temiz yaparsınız:

1kullanici = ("ahmet", 25, "istanbul")
2ad, yas, sehir = kullanici
3
4print(f"{ad}, {yas} yaşında, {sehir}'de yaşıyor")

Beklenen çıktı:

1ahmet, 25 yaşında, istanbul'da yaşıyor

Fonksiyonlardan dönen birden fazla değeri açmak da yaygındır:

1def kullanici_bilgisi():
2return "zeynep", 30, "ankara"
3
4ad, yas, sehir = kullanici_bilgisi()
5print(f"{ad} ({yas}): {sehir}")

Beklenen çıktı:

1zeynep (30): ankara

İhtiyaç duymadığınız değerleri yok saymak istiyorsanız alt çizgi kullanın:

Reklam · TEST
AdSense Test ReklamıYazı arası (gönderi içi) · Yazı arası
1kullanici = ("can", 28, "izmir", "mühendis")
2ad, yas, _, meslek = kullanici
3
4print(f"{ad} - {meslek}")

Beklenen çıktı:

1can - mühendis

Listelerde de çalışır:

1veriler = [["ali", 35], ["veli", 40], ["deli", 45]]
2
3for ad, yas in veriler:
4print(f"{ad}: {yas}")

Beklenen çıktı:

1ali: 35
2veli: 40
3deli: 45

Sözlük ile çalışırken .items() kullanın:

1kisi = {"ad": "fatma", "yas": 32, "sehir": "bursa"}
2
3for anahtar, deger in kisi.items():
4print(f"{anahtar}: {deger}")

Beklenen çıktı:

1ad: fatma
2yas: 32
3sehir: bursa

Sık yapılan hata: Değer sayısı ile değişken sayısı eşleşmezse hata alırsınız. Her zaman kontrol edin:

1# YANLIŞ - ValueError
2veriler = (1, 2, 3)
3a, b = veriler # 3 değeri 2 değişkene atamak imkansız
4
5# DOĞRU
6a, b, c = veriler

Tuple decomposition, özellikle API yanıtlarını işlerken, dosya işlemlerinde ve veri analizi kodunda kodu çok daha temiz tutar. Değişken isimleri açık olduğu için bakım ve debug işleri kolaylaşır.

Reklam · TEST
AdSense Test ReklamıGönderi altı · Görüntülü
konu hakkında tepkinizi verebilirsiniz
  • adlı kullanıcıya yanıt verdi
    gonyali

    sonra bir de şey var bazı kütüphaneler tuple döndürüyor ama format beklentisi farklı olabiliyor onda da bir sürü hataya sebep oluyor

  • adlı kullanıcıya yanıt verdi
    kodkafasi

    sözlük kısmında items olmadan direk açmaya çalışırsan anahtar geliyor değer değil başında böyle hata yaptım ben de bir kere öğrenince artık otomatik oluyor ama evet tuzak

  • adlı kullanıcıya yanıt verdi
    gonyali

    ama sözlük kısmı biraz tuzak ya items unutunca çöpe gidiyor her şey

  • adlı kullanıcıya yanıt verdi
    kodkafasi

    harika açıdan baktın aynen indeks saymanın yerini alıyor ben de başta `[0]` `[1]` diye

  • gonyali

    ya bu işte tuple açmak gerçekten işi çok basitleştiriyor indeks sayıp `[0]` `[1]` diye yazmaktan kurtuluyorsun