在python中将数据添加到字典中

时间:2015-01-14 12:18:48

标签: python dictionary

这是我的字典:

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

我需要在gold的索引中添加50。 我该怎么办?我试过了:

inventory['gold'].append(50)

3 个答案:

答案 0 :(得分:2)

gold不是列表。它是整数,因此您使用 addition

inventory['gold'] += 50

这使用扩充赋值,对于整数,它等效于:

inventory['gold'] = inventory['gold'] + 50

如果您还需要gold作为列表,并希望最终得到[500, 50]作为值,则您必须替换当前值列表:

inventory['gold'] = [inventory['gold'], 50]

如果您需要随时间添加多个值,并且不知道gold是列表还是简单整数,并且无法将原始字典更改为总是使用列表,您可以使用异常处理:

try:
    inventory['gold'].append(50)
except AttributeError:
    # not a list yet
    inventory['gold'] = [inventory['gold'], 50]

如果启动gold始终是列表对象,那么维护项目会容易得多。

答案 1 :(得分:2)

假设你的意思是想要追加50金币。将黄金列为清单:

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

inventory['gold'].append(50)

如果您想添加,请使用Martijn的解决方案。

答案 2 :(得分:0)

如果你想将60加到“Platinum”键的值

inventory ["Platinum"] += 60

如果你想保持500的值,但也值60,你需要包含它们的东西,如列表。

您可以使用列表初始化“Platinum”值,然后将500和60附加到它。

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

或者您可以使用defaultdict使其更简单。

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