typing.List ve Dict
- Python kursu
- İleri seviye
- Ders 9/83
- 5 dk
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
# 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
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
from typing import Dict
def lengths(words):
result: Dict[str, ____] = {}
for w in words:
result[w] = len(w)
return result
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.