代码:
inv = {'arrow': 12, 'gold coin': 42, 'rope': 1, 'torch': 6, 'dagger': 1}
def show_inv():
print('inventory:')
item_total = 0
for k, v in inv.items():
print(str(v)+ ' ' + (k))
item_total = item_total + v
print('total number of items: ' + str(item_total))
show_inv()
结果(按预期):
清单:
12箭头
42金币1根绳子
6火炬
1 dagger
项目总数:62
但是怎么做
item_total = item_total + v
给我正确的总值?
编辑:为什么单独打印(str(v))总是给我“匕首”键的价值?
答案 0 :(得分:2)
这里的重要部分是:
for k, v in inv.items():
# do stuff
当您在字典的for
迭代器上使用items
- 循环时,它将循环遍历该字典的key
和value
。由于您有从名称到值的字典,values
(v
)将是每个项目的值。添加所有这些可以为您提供正确的总价值。
该行
item_total = item_total + v
为广告资源中的每个项目运行一次,因为它位于库存上运行的for
循环内。
阅读Iterators in Python可能有助于您了解其工作原理。