I’m learning Python and I’m trying to write some program to manage "inventory".
I have come with a way to change list to dictionary, it adds up the values but returns None in the end.
The code looks like this:
def addToInventory(inventory, addedItems):
backpack = {}
for i in addedItems:
backpack.setdefault(i, 0)
backpack[i] += 1
print(backpack)
for k, v in backpack.items():
if k not in inventory.keys():
inventory.setdefault(k, v)
elif k in inventory.keys():
inventory[k] += backpack[k]
print(inventory)
inv = {'gold coin': 42, 'rope': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToInventory(inv, dragonLoot)
print(inv)
The print(inventory) returns what I want, but print(inv) returns None.
Can you help me understand what I do wrong?
Sorry if this is trivial.
Thank you in advance.
>Solution :
def addToInventory(inventory, addedItems):
backpack = {}
for i in addedItems:
backpack.setdefault(i, 0)
backpack[i] += 1
print(backpack)
for k, v in backpack.items():
if k not in inventory.keys():
inventory.setdefault(k, v)
elif k in inventory.keys():
inventory[k] += backpack[k]
print(inventory)
return inventory # This was missing!!
inv = {'gold coin': 42, 'rope': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToInventory(inv, dragonLoot)
print(inv)