CodeBlanks Logo Icon CodeBlanks

typing.List ve Dict

typing.List ve Dict ile generic türleri öğrenirsin.

typing.List ve Dict

Bir listenin içindeki türü bildirmek için typing.List kullanılır: List[int] tamsayı listesi anlamına gelir. Sözlükler için Dict: Dict[str, int] anahtarları dize, değerleri tamsayı olan sözlük demektir.

from typing import List, Dict

def total(nums: List[int]) -> int:
    return sum(nums)

def counts(words: List[str]) -> Dict[str, int]:
    return {w: len(w) for w in words}

Köşeli parantez içindeki tür, listenin ya da sözlüğün öğe türüdür. Python 3.9+ sürümlerinde list[int] ve dict[str, int] küçük harfle de yazılabilir; bu derste typing modülünü kullanıyoruz.

İç içe türler ve okuma

Türler iç içe de kullanılabilir. List[Dict[str, int]], her öğesi bir sözlük olan liste demektir. Bu, veri tabanı satırlarını ya da yapılandırma ayarlarını ifade etmek için yararlıdır.

Okurken imzayı sağdan sola yorumla: önce en içteki türü bul, sonra dıştaki kapsayıcıyı ekle. Örnek: Dict[str, List[int]] anahtarları dize, değerleri tamsayı listesi olan sözlüktür.

İç içe hint'ler karmaşık görünse de IDE ve mypy bunları takip eder; hataları erken yakalarsın.

Uygulama List[int] ile total fonksiyonu

total(nums: List[int]) -> int fonksiyonunu yaz. Gövde return sum(nums) içersin. typing modülünden List içe aktar. print(total([1, 2, 3])) çağrısını yap.

Başlangıç kodu

main.py
# typing modülünden List içe aktar
# total(nums: List[int]) -> int: nums listesini topla
# total([1, 2, 3]) çağrısının sonucunu yazdır

Örnek çözüm

main.py
from typing import List

def total(nums: List[int]) -> int:
    return sum(nums)

print(total([1, 2, 3]))

Beklenen çıktı

6

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Kapsayıcı türlerini eşleştir

Kavram Anlamı
List[int] Tamsayı listesi
Dict[str, int] Dize→tamsayı sözlük
List[str] Dize listesi
Dict[str, str] Dize→dize sözlük

2 Dict türünü tamamla

Soru
from typing import Dict

def lengths(words):
    result: Dict[str, ____] = {}
    for w in words:
        result[w] = len(w)
    return result
Cevap
from typing import Dict

def lengths(words):
    result: Dict[str, int] = {}
    for w in words:
        result[w] = len(w)
    return result

Açıklama: Dict[str, int] anahtarları dize, değerleri tamsayı olan sözlük demektir; len(w) tamsayı döndürür.

3 Dict[str, int] hangi yapıyı tanımlar?

  • Anahtarları dize, değerleri tamsayı olan sözlük Doğru cevap
  • Tamsayı listesi
  • Yalnızca None içeren sözlük
  • Dize listesi

Açıklama: Dict[str, int] dize anahtar ve tamsayı değer alan sözlüktür.

İleri seviye bölümündeki tüm dersler