Python:"嵌套"词典的目的?

Hap*_*rs 0 python

我经常在示例代码中看到这个:

# Our mock database.
users = {'foo@bar.tld': {'password': 'secret'}}
Run Code Online (Sandbox Code Playgroud)

想知道为什么不只是说

passwords = {"foo@bar.tld": "secret"}
Run Code Online (Sandbox Code Playgroud)

这种嵌套结构的好处在哪里?

肯定有一个缺点:需要确保为我设置的每个用户命名密钥"密码"相同...

Cor*_*mer 7

因为通常情况下,您需要在字典的每个级别中包含更多条目

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'}}
Run Code Online (Sandbox Code Playgroud)

这类似于JSON的结构,您可以在其中使用任意嵌套的项来表示层次结构.