Arn*_*904 0 python dictionary python-3.x
我正在研究一个练习题,用户将库存保存为字典,例如:
inventory = {
'rope': 1,
'gold coin': 42,
}
Run Code Online (Sandbox Code Playgroud)
然后,我需要通过稍后向库存添加"抢劫"来修改它.
例如:
loot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
Run Code Online (Sandbox Code Playgroud)
我结束了使用很容易做这个Counter范围内collections,像这样:
def add_to_inventory(original_inventory, added_items):
new_inventory = Counter(original_inventory) + Counter(added_items)
return(new_inventory)
inventory = add_to_inventory(inventory, loot)
Run Code Online (Sandbox Code Playgroud)
结果是:
45: gold coin
1: rope
1: ruby
1: dagger
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但我想知道.. 有没有合理的方法来解决这个问题,而无需导入库?
你可以简单地使用dict的get方法:
inventory = {'rope': 1, 'gold coin': 42,}
loot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
for k in loot:
inventory[k] = inventory.get(k, 0) + 1
print inventory
Run Code Online (Sandbox Code Playgroud)
输出:
{'rope': 1, 'gold coin': 45, 'dagger': 1, 'ruby': 1}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46 次 |
| 最近记录: |