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.