使用Python自动化无聊的东西:嵌套字典和列表

时间:2018-04-24 22:05:48

标签: python dictionary

这本书包含了字典中的字典示例,我很难理解它。

例如,这是一个程序,它使用包含其他字典的字典,以便查看谁带来什么野餐。 totalBrought()函数可以读取此数据结构并计算所有客人带来的项目总数。

allGuests = {'Alice': {'apples': 5, 'pretzels': 12},
             'Bob': {'ham sandwiches': 3, 'apples': 2},
             'Carol': {'cups': 3, 'apple pies': 1}}
def totalBrought(guests, item):
    numBrought = 0
    for k, v in guests.items():
        numBrought = numBrought + v.get(item, 0)
    return numBrought
print('Number of things being brought:')
print(' Apples    ' + str(totalBrought(allGuests, 'apples')))

我的问题: 在 for k中,v在guests.items() guests.items()代表什么?如果它代表allGuests字典,那么什么是 v ? subictionary(dictonary中的字典)或它只代表数字(子管理中的值 - 5,12等)?换句话说就是 k ' Alice'和 v {' apples':5,' pretzels':12}?

1 个答案:

答案 0 :(得分:1)

  

换句话说就是k' Alice'和v {' apples':5,' pretzels':12}?

.items()不会检查它产生的值,如果这些值是字典,则会进一步分解它们。更一般地说,字典(或列表,集合,元组等)并不知道它是嵌套的,并且并不真正关心它的值。 allGuests的行为就像任何其他字典一样。