Рассмотрите возможность реструктуризации и использования Counter
, как показано ниже:
from collections import Counter
inventory = Counter({'rope': 1, 'torch': 6, 'gold coin': 3, 'dagger': 1, 'arrow': 12})
def displayInventory():
print('Inventory:')
for k, v in inventory.items():
print(v, k)
print(f'Total number of items: {sum(inventory.values())}')
displayInventory()
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'ruby']
print('--Picked up loot!')
inventory.update(dragonLoot)
displayInventory()
Дает:
Inventory:
1 rope
6 torch
3 gold coin
1 dagger
12 arrow
Total number of items: 23
--Picked up loot!
Inventory:
1 rope
6 torch
5 gold coin
2 dagger
12 arrow
1 ruby
Total number of items: 27
Это также означает, что если вы можете безопасно проверить инвентарь на предметы, которых еще нет втам как:
print(inventory['diamond'])
, что дает:
0
(нормальный дикт должен поднять KeyError
).