Wyjaśnienie lekcji
Po tej lekcji będziesz potrafić:
Słownik odwzorowuje klucze na wartości. Jest przydatny dla nazwanych ustawień i rekordów, w których settings["region"] jest jaśniejsze niż pamiętanie pozycji liczbowej. Literał używa wpisów {key: value}; pusty słownik to {}. Klucze muszą być haszowalne (napisy to częsty wybór), a każdy klucz jest unikalny: ponowne przypisanie tego samego klucza zastępuje jego wartość.
Znaną wartość odczytasz za pomocą record[key], a record[key] = new_value dodaje ją lub aktualizuje. Wyszukanie brakującego klucza w nawiasach kwadratowych zgłasza KeyError.
Sprawdź przynależność klucza za pomocą key in record, zanim odczytasz pole opcjonalne. To sprawdza, czy klucz istnieje, a nie czy jego wartość jest prawdziwa: zapisane 0, False, "" lub None nadal mogą być poprawnymi danymi. Użyj del record[key], aby usunąć istniejący klucz; jeśli może go nie być, najpierw sprawdź przynależność.
Nawiasy kwadratowe wyszukują wartość należącą do klucza.
account = {"team": "payments", "retries": 3}
print(account["team"])
print(account["retries"])Wynik:
payments
3Przypisanie do brakującego klucza dodaje go; przypisanie do istniejącego klucza zmienia jego wartość.
config = {"region": "us", "retries": 2}
config["region"] = "eu"
config["enabled"] = True
print(config["region"])
print(config["enabled"])Wynik:
eu
TrueTest przynależności sprawdza obecność klucza, a nie zapisaną wartość.
profile = {"user": "Maya", "attempts": 0}
print("attempts" in profile)
print("active" in profile)Wynik:
True
FalseUsunięcie całkowicie kasuje wpis.
settings = {"debug": False, "port": 8000}
del settings["debug"]
print(len(settings))
print("debug" in settings)Wynik:
1
False| Potrzeba | Python |
|---|---|
| Utworzenie odwzorowania | {"region": "eu"} |
| Odczyt znanego klucza | config["region"] |
| Dodanie lub aktualizacja | config["enabled"] = True |
| Sprawdzenie, czy klucz istnieje | "enabled" in config |
| Usunięcie istniejącego wpisu | del config["enabled"] |
| Zliczenie wpisów | len(config) |
record["missing"] zgłasza KeyError, gdy klucz nie istnieje.key in record sprawdza klucze, a nie wartości.0 nadal jest wartością dla obecnego klucza..get() słowników i jej zachowanie domyślne zostaną wprowadzone w następnej lekcji; tutaj używaj sprawdzania przynależności kluczy.