Sobes.tech
Middle

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.