Middle
Ποιοι περιορισμοί υπάρχουν στις κλειδιά σε dict στην Python;
sobes.tech AI
Απάντηση από AI
Στην Python, τα κλειδιά σε ένα λεξικό (dict) πρέπει να είναι αντικείμενα που μπορούν να υποβληθούν σε hash (αμετάβλητα). Αυτό σημαίνει ότι τα κλειδιά πρέπει να έχουν μια αμετάβλητη κατάσταση και να υλοποιούν τη μέθοδο __hash__().
Κύριοι περιορισμοί:
- Τα κλειδιά πρέπει να είναι αμετάβλητοι τύποι, π.χ.: συμβολοσειρές (
str), αριθμοί (int,float), πλειάδες (tuple), υπό την προϋπόθεση ότι όλα τα στοιχεία της πλειάδας είναι επίσης hashable. - Δεν επιτρέπεται η χρήση μεταβλητών τύπων, όπως λίστες (
list), σύνολα (set), λεξικά (dict) ως κλειδιά, καθώς δεν είναι hashable.
Παράδειγμα:
valid_dict = {
"key": 1,
42: "value",
(1, 2): "tuple key"
}
invalid_dict = {
[1, 2]: "list as key" # θα προκαλέσει TypeError
}
Αν προσπαθήσετε να χρησιμοποιήσετε ένα μεταβλητό αντικείμενο ως κλειδί, η Python θα εμφανίσει σφάλμα TypeError: unhashable type.