Junior
Jakie mogą być klucze w słownikach w Pythonie?
sobes.tech AI
Odpowiedź od AI
Klucze w słownikach Pythona mogą być dowolnymi niezmiennymi (hashable) obiektami.
Niezmiennymi typami danych są:
- Liczby całkowite (
int) - Liczby zmiennoprzecinkowe (
float) - Ciągi znaków (
str) - Krotki (
tuple) zawierające tylko niezmienialne elementy - Wartości logiczne (
bool) - NoneType (
None) - Frozenset (
frozenset) zawierający tylko niezmienialne elementy
Przykłady dozwolonych kluczy:
# Dozwolone klucze
mój_słownik = {
1: "jeden",
3.14: "pi",
"klucz": "wartość",
(1, 2): "krotka",
True: "prawda",
None: "brak",
frozenset({1, 2}): "niezmienny zbiór"
}
Niezmienialne obiekty mają hash, który jest używany do szybkiego wyszukiwania w słowniku.
Obiekty zmienialne, takie jak listy (list), zbiory (set) i inne słowniki (dict), nie mogą być kluczami, ponieważ ich zawartość może się zmienić, co zakłóciłoby integralność hash.
Przykłady niedozwolonych kluczy:
# Niedozwolone klucze (spowoduje TypeError)
# mój_słownik = {
# [1, 2]: "lista",
# {1, 2}: "zbiór",
# {"a": 1}: "inny słownik"
# }