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]56print(f"{ad}, {yas} yaşında, {sehir}'de yaşıyor")Beklenen çıktı:
1ahmet, 25 yaşında, istanbul'da yaşıyorTuple decomposition ile aynı işi çok daha temiz yaparsınız:
1kullanici = ("ahmet", 25, "istanbul")2ad, yas, sehir = kullanici34print(f"{ad}, {yas} yaşında, {sehir}'de yaşıyor")Beklenen çıktı:
1ahmet, 25 yaşında, istanbul'da yaşıyorFonksiyonlardan dönen birden fazla değeri açmak da yaygındır:
1def kullanici_bilgisi():2return "zeynep", 30, "ankara"34ad, 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:
1kullanici = ("can", 28, "izmir", "mühendis")2ad, yas, _, meslek = kullanici34print(f"{ad} - {meslek}")Beklenen çıktı:
1can - mühendisListelerde de çalışır:
1veriler = [["ali", 35], ["veli", 40], ["deli", 45]]23for ad, yas in veriler:4print(f"{ad}: {yas}")Beklenen çıktı:
1ali: 352veli: 403deli: 45Sözlük ile çalışırken .items() kullanın:
1kisi = {"ad": "fatma", "yas": 32, "sehir": "bursa"}23for anahtar, deger in kisi.items():4print(f"{anahtar}: {deger}")Beklenen çıktı:
1ad: fatma2yas: 323sehir: bursaSı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Ş - ValueError2veriler = (1, 2, 3)3a, b = veriler # 3 değeri 2 değişkene atamak imkansız45# DOĞRU6a, b, c = verilerTuple 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.
5 yorum
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
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
ama sözlük kısmı biraz tuzak ya items unutunca çöpe gidiyor her şey
harika açıdan baktın aynen indeks saymanın yerini alıyor ben de başta `[0]` `[1]` diye
ya bu işte tuple açmak gerçekten işi çok basitleştiriyor indeks sayıp `[0]` `[1]` diye yazmaktan kurtuluyorsun