我正在编写练习程序,将列表中的项目添加到现有词典
def addToInventory(inventory, addedItems):
for i in addedItems:
inventory[i] = inventory.get(i,0) + 1
stuff = {'gold coin': 42, 'rope': 1}
loot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
stuff = addToInventory(stuff, loot)
运行此内容后,为什么内容会更改为“无”?
答案 0 :(得分:3)
事实上,你的代码几乎是好的,你只有一个错误。 python中的字典是可变的,然后当你在你的函数中修改它时你修改你传递的那个作为参数。但是因为你的函数在你写的时候没有返回任何东西:
stuff = addToInventory(stuff, loot)
你将东西分配给无。
你有两个选择: 在函数末尾返回字典:def addToInventory(inventory, addedItems):
for i in addedItems:
inventory[i] = inventory.get(i,0) + 1
return inventory
或者不要重新分配东西:
addToInventory(stuff, loot)
答案 1 :(得分:2)
您的函数中没有返回语句,因此它不返回任何内容 - None
。
解决方案?在函数中添加return语句
def addToInventory(inventory, addedItems):
for i in addedItems:
inventory[i] = inventory.get(i,0) + 1
return inventory