Sprawdzanie zagnieżdżonego słownika za pomocą ciągu znaków notacji „a.b.c.d.e” automatycznie tworzy brakujące poziomy
Ten jest w moim umyśle. Biorąc pod uwagę następujący słownik:
d = {"a":{"b":{"c":"winning!"}}}
Mam ten ciąg (z zewnętrznego źródła i nie mogę zmienić tej metafory).
k = "a.b.c"
Muszę określić, czy słownikma klucz „c”, więc mogę go dodać, jeśli nie.
Działa to płynnie w celu pobrania wartości notacji kropkowej:
reduce(dict.get, key.split("."), d)
ale nie wiem, jak „zmniejszyć” czek has_key lub coś takiego.
Moim największym problemem jest to, że: „a.b.c.d.e” muszę utworzyćwszystkie niezbędne elementy w słowniku, ale nie deptaj ich, jeśli już istnieją. Jeśli ktoś wie, jak to wszystko zrobić, będziesz moim bohaterem.