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.

questionAnswers(4)

yourAnswerToTheQuestion