【发布时间】:2018-02-11 16:32:19
【问题描述】:
我这里有一本字典:
dic = {'A':1, 'B':6, 'C':42, 'D':1, 'E':12}
这里有一个列表:
lis = ['C', 'D', 'C', 'C', 'F']
我要做的是(也是家庭作业的要求)检查 lis 中的值是否与 dic 中的键匹配,如果匹配,则递增 1(例如 lis 中有 3 个“C”那么在 dic 'C' 的输出中应该是 45)。如果不是,那么我们在 dic 中创建一个新项目并将值设置为 1。
所以示例输出应该是这样的:
dic = {'A':1, 'B':6, 'C':45, 'D':2, 'E':12, 'F':1}
这是我的代码:
def addToInventory(dic, lis):
for k,v in dic.items():
for i in lis:
if i == k:
dic[k] += 1
else:
dic[i] = 1
return dic
并通过以下代码执行:
dic = addToInventory(dic,lis)
它编译没有错误,但输出很奇怪,它将缺少的 F 添加到 dic 中但没有正确更新值。
dic = {'A':1, 'B':6, 'C':1, 'D':1, 'E':12, 'F':1}
我在这里错过了什么?
【问题讨论】:
标签: python list loops dictionary