字典在for循环末尾变为NoneType

2024-06-16 10:04:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为一个函数编写一个示例代码,该函数将向字典中添加一个条目列表。问题是在for循环的末尾,背包字典变成了一个非类型对象。为什么是这样?我怎样才能不让我的字典变成空白呢?在

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))

Tags: 函数代码示例列表for字典条目inventory
2条回答

不要写别人已经为你写的代码。这将执行相同的操作:

import collections

backpack = collections.Counter({'gold coin': 42, 'rope': 1})
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
backpack.update(dragonLoot)

有关详细信息,请参见^{}。在

您的函数修改backpack对象,然后返回None(因为它没有显式的return语句)。因此,与其指定结果:

backpack = addToInventory(backpack, dragonLoot)

您应该只调用函数而不返回结果。backpack将被就地更改:

^{pr2}$

相关问题 更多 >