这是我的字典:
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)
答案 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')