Często to widzę w kodzie próbkowania:

# Our mock database.
users = {'foo@bar.tld': {'password': 'secret'}}

Zastanawiasz się, dlaczego nie tylko powiedzieć

passwords = {"foo@bar.tld": "secret"}

Gdzie jest korzyść z tak zagnieżdżonej struktury?

Zdecydowanie istnieje wadę: trzeba zapoznać się z plikiem "Hasło" tak samo dla każdego użytkownika, który skonfigurowałem ...

0
Happysmithers 6 wrzesień 2017, 14:49

2 odpowiedzi

Najlepsza odpowiedź

Ponieważ często jest to przypadek, że musisz mieć więcej wpisów na każdym poziomie słownika, na przykład

users = {'foo@bar.tld': {'password': 'secret',
                         'name': 'john smith',
                         'creation_date': '2017/09/06'},
         'baz@qux.tld': {'password': 'secret',
                         'name': 'someone else',
                         'creation_date': '2017/08/02'}}

Jest to podobne do struktury JSON, gdzie można mieć arbitralnie zagnieżdżone przedmioty do reprezentowania hierarchii.

7
Cory Kramer 6 wrzesień 2017, 11:53

Wyobraź sobie, że masz więcej użytkowników, a każdy użytkownik ma hasło, nazwa użytkownika, wiek, data urodzenia, zdjęcie, id ... itp., To byłoby bardzo nieefektywne:

users = {'foo@bar.tld': 'secret,userName,15,pic.png...etc'} # you also need other users with properties

Wtedy jesteś zmuszony do użycia:

users = {
          'foo@bar.tld': 
                        {'password': 'secret',
                         'username': 'userName',
                         'age': 15,
                         'photo': 'pic.png'},#etc...
          'user@two.tld': { # same thing ... }
        }
2
MrGeek 6 wrzesień 2017, 12:16