将数据添加到 python 中的字典

Add data to dictionary in python

这是我的词典:

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)

gold 不是列表。它是一个整数,所以你使用加法:

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始终是一个列表对象,那么维护您的项目会容易得多。

假设您的意思是要将 50 添加到 gold。制作黄金清单:

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 的解决方案。

如果要将键的值加 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')