Skip to content Skip to sidebar Skip to footer

Add Data To Dictionary In Python

Here is my dictionary: inventory = { 'gold' : 500, 'pouch' : ['flint', 'twine', 'gemstone'], # Assigned a new list to 'pouch' key 'backpack' : ['xylophone','dagger', 'b

Solution 1:

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.

Solution 2:

Assuming you mean you want to append 50 to gold. Make gold a list:

inventory = {
    'gold' : [500],
    'pouch' : ['flint', 'twine', 'gemstone'], # Assigned a new list to 'pouch' key
    'backpack' : ['xylophone','dagger', 'bedroll','bread loaf']
}

inventory['gold'].append(50)

If you meant add, use Martijn's solution.

Solution 3:

If you want to add 60 to the value of the key "Platinum"

inventory ["Platinum"] += 60

If you want to keep the value of 500 but also have a value of 60 you need something to contain them both such as a list.

You could initialize your "Platinum" value with a list and then append 500 and then 60 to it.

inventory ["Platinum"] = list ()
inventory ["Platinum"].append (500)
inventory ["Platinum"].append (60)

Or you could use the defaultdict to make it slightly simpler.

from collections import defaultdict


inventory = defaultdict (list)  # every missing value is now a list.

inventory ["Platinum"].append (500) # add 500 to the list.
inventory ["Platinum"].append (60) # add 60 to the list.
inventory ["pouch"] = ['Flint', 'twine', 'gemstone'] # create a new key with a new value.
inventory['animals'].extend(['Elephant', 'dog','lion']) # extend list to include.
inventory['pouch'].remove('Flint')

Post a Comment for "Add Data To Dictionary In Python"