Sobes.tech
Middle

Python'da dict'teki anahtarlar için hangi kısıtlamalar var?

sobes.tech yapay zeka

AI'dan gelen yanıt

Python'da, sözlük (dict) içindeki anahtarlar hashlenebilir (değişmez) nesneler olmalıdır. Bu, anahtarların değişmez bir duruma sahip olması ve __hash__() metodunu uygulaması gerektiği anlamına gelir.

Ana kısıtlamalar:

  • Anahtarlar, örneğin: dizgeler (str), sayılar (int, float), demetler (tuple) gibi değişmez türler olmalıdır; ayrıca, demetin tüm öğeleri de hashlenebilir olmalıdır.
  • Listeler (list), kümeler (set), sözlükler (dict) gibi değiştirilebilir türler anahtar olarak kullanılamaz, çünkü bunlar hashlenemez.

Örnek:

valid_dict = {
    "key": 1,
    42: "value",
    (1, 2): "tuple key"
}

invalid_dict = {
    [1, 2]: "list as key"  # TypeError hatası verir
}

Değiştirilebilir bir nesne anahtar olarak kullanılmaya çalışılırsa, Python TypeError: unhashable type hatası verir.