Here is my dictionary:
inventory = {
'gold' : 500,
'pouch' : ['flint', 'twine', 'gemstone'], # Assigned a new list to 'pouch' key
'backpack' : ['xylophone','dagger', 'bedroll','bread loaf']
}
I need to add 50 to the index of gold.
What should I do? I tried:
inventory['gold'].append(50)
解决方案
gold is not a list. It is an integer, so you use addition:
inventory['gold'] += 50
This uses augmented assignment, which for integers is equivalent to:
inventory['gold'] = inventory['gold'] + 50
If you need gold to be a list as well, and want to end up with [500, 50] as the value, you'll have to replace the current value with a list:
inventory['gold'] = [inventory['gold'], 50]
If you need to add multiple values over time, and don't know if gold is a list or a simple integer, and cannot change the original dictionary to always use a list, you could use exception handling:
try:
inventory['gold'].append(50)
except AttributeError:
# not a list yet
inventory['gold'] = [inventory['gold'], 50]
It would be far easier to maintain your project if you started with gold always being a list object, however.