假设我有 dict = {‘a’: 1, ‘b’: 2’} 并且我还有一个列表 = [‘a’, ‘b, ‘c’, ’d’, ‘e’]。目标是将列表元素添加到字典中并打印出新的字典值以及这些值的总和。应该看起来像:
2 a
3 b
1 c
1 d
1 e
Total number of items: 8
相反,我得到:
1 a
2 b
1 c
1 d
1 e
Total number of items: 6
到目前为止我所拥有的:
def addToInventory(inventory, addedItems)
for items in list():
dict.setdefault(item, [])
def displayInventory(inventory):
print('Inventory:')
item_count = 0
for k, v in inventory.items():
print(str(v) + ' ' + k)
item_count += int(v)
print('Total number of items: ' + str(item_count))
newInventory=addToInventory(dict, list)
displayInventory(dict)
任何帮助将不胜感激!
原文由 bgrande 发布,翻译遵循 CC BY-SA 4.0 许可协议
您只需要迭代列表并增加对键的计数(如果它已经存在),否则将其设置为 1。
您可以使用
dict.get
简洁地编写相同的内容,如下所示dict.get
函数会寻找键,如果找到它会返回值,否则会返回你在第二个参数中传递的值。如果item
已经是字典的一部分,那么将返回与它相对应的数字,我们将1
添加到它,并将其存储回相同的item
。如果没有找到,我们将得到 0(第二个参数),然后将其加 1 并将其存储在item
中。现在,要获得总数,您可以使用
sum
函数将字典中的所有值相加,如下所示dict.values
函数将返回字典中所有值的视图。在我们的例子中,它将编号,我们只需使用sum
函数将它们全部相加。