这本书包含了字典中的字典示例,我很难理解它。
例如,这是一个程序,它使用包含其他字典的字典,以便查看谁带来什么野餐。 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}?
答案 0 :(得分:1)
换句话说就是k' Alice'和v {' apples':5,' pretzels':12}?
是
.items()
不会检查它产生的值,如果这些值是字典,则会进一步分解它们。更一般地说,字典(或列表,集合,元组等)并不知道它是嵌套的,并且并不真正关心它的值。 allGuests
的行为就像任何其他字典一样。