Python:“嵌套”词典的目的?

时间:2017-09-06 11:49:27

标签: python

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

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

想知道为什么不只是说

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

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

肯定有一个缺点:需要确保为我设置的每个用户命名密码“password”...

2 个答案:

答案 0 :(得分: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'}}

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

答案 1 :(得分:2)

想象一下,你有更多的用户,每个用户都有密码,用户名,年龄,出生日期,照片,身份等等,那么这将是非常低效的:

{
 public static void main(String[] args) {
  System.setProperty("webdriver.gecko.driver", "/Users/sn‌​igdhanarain/Document‌​s/geck");
  WebDriver driver = new FirefoxDriver();
  driver.get("google.com");
 }
}

然后你被迫使用:

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