python - 字典在 for 循环结束时变为 NoneType

标签 python

我正在为一个函数编写示例代码,该函数将向字典添加项目列表。问题是,在 for 循环结束时,背包字典变成了 NoneType 对象。为什么会这样,我该如何阻止我的字典变成空白?

def addToInventory(inventory, addedItems):
    for i in addedItems:
        inventory.setdefault(i, 0)
        inventory[i] += 1

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

print(type(inv))

最佳答案

您的函数会就地修改 backpack 对象,然后返回 None (因为它没有显式的 return 语句)。因此,不要分配结果:

backpack = addToInventory(backpack, dragonLoot)

您应该只调用该函数而不将结果分配回。 背包将就地更改:

addToInventory(backpack, dragonLoot)

关于python - 字典在 for 循环结束时变为 NoneType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32674469/

相关文章:

python - 在 Python 中处理异步

python - Airflow :避免任务状态=跳过

python - 如何在多个列表中查找相同的项目?

python - 使用 beautifulsoup 美化 html 文档的一部分

python - Python 中的多个 for 循环中断

python - 如何在没有函数的脚本上使用 pytest

python - 在Python中读取大型二进制文件的部分内容

python - 如何获得决策树的ROC曲线?

python - 将 openCV python 函数转换为 C++

python - Django 值错误 : invalid literal for int() with base 10: ''