从列表项向字典添加新密钥时出错

时间:2017-05-18 22:24:03

标签: python dictionary

我正在通过自动化无聊的东西,这是第5章中的第二个项目。出于某种原因,我的字典变成了"无"在调用将项添加到字典的函数之后。这是我的代码:

def displayInventory(anInventory):
    item_total = 0
    print("Inventory: \n")
    for i, j in anInventory.items():
        print(str(j) + " " + i)
        item_total += j
    print("\nTotal number of items: " + str(item_total))

def addToInventory(inventory, addedItems):
    for i in addedItems:
        if i in inventory:
            inventory[i] += 1
        else:
            inventory[i] = 1

inv = {'gold coin': 42, 'rope': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToInventory(inv, dragonLoot)

displayInventory(inv)

我已将问题缩小到addToInventory函数,因为displayInventory函数可以正常工作。如果我在inv字典的创建下添加一个print语句,它会打印字典。但是,如果我在调用addToInventory函数后立即添加print语句,则会打印" None"。

我非常有信心这个功能运作良好,所以我很感激任何指出我的错误的帮助。谢谢!

2 个答案:

答案 0 :(得分:2)

你的addToInventory函数没有返回任何内容,所以你在这一行指定None值:

inv = addToInventory(inv, dragonLoot)

使用简单的方法调用替换赋值:

addToInventory(inv, dragonLoot)

答案 1 :(得分:2)

您不会从addToInventory返回任何内容。所以它是None