Python sözlüğündeki anahtarlar neden değiştirilemez olmalı ve değiştirilebilir anahtarlar kullanılabilir mi?
sobes.tech yapay zeka
AI'dan gelen yanıt
Python sözlüğünde anahtarlar değiştirilemez olmalıdır çünkü sözlük, değerleri hızlı erişim için hashing kullanır. Eğer anahtar değiştirilebilir ise, ekledikten sonra hash değeri değişebilir ve bu da anahtarı ve karşılık gelen değeri bulmayı imkânsız hale getirir.
Örneğin, dizgeler, sayılar ve değiştirilemez öğelerden oluşan demetler (tuples) uygun anahtarlar olup, hashleri değişmez.
Değiştirilebilir anahtarlar (örneğin, listeler veya sözlükler) kullanılamaz çünkü bunların sabit bir hash değeri yoktur ve hash() metodunu desteklemezler. Değiştirilebilir bir nesneyi anahtar olarak kullanmaya çalışmak TypeError hatasıyla sonuçlanır.
Örnek:
my_dict = {}
my_dict[[1, 2, 3]] = "value" # TypeError: unhashable type: 'list'
Bu nedenle, anahtarların değiştirilemez olması, sözlüğün hash tablosunun düzgün çalışmasını sağlar.