<p>函数中的逻辑已经足够了,但是为“dragon\u loot”数据类型选择{set}是不合逻辑的;)</p>
<pre><code>'''
started: yyyymmdd@time
fantasyGameInventory.py - a pair of functions which
add items in a list to an inventory dictionary and
display the inventory from a dictionary data structure
finished: yyyymmdd@time
author: your_name_here
'''
stuff = {'rope': 1, # a dict
'torch': 6,
'gold coin': 40,
'dagger': 1,
'arrow': 12}
dragon_loot = ['gold coin', # a list
'dagger',
'gold coin',
'gold coin',
'ruby']
dragonLoot = {'gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby'}
print ('"stuff" is a {}'.format(type(stuff)))
print ('"dragon_loot" is a {}, and'.format(type(dragon_loot)))
print ('"dragonLoot" was a {} (with a camelCase binding)'.format(type(dragonLoot)))
print ()
print ('Wha\' happen\' to all the gold???\n{}'.format(dragonLoot))
print ()
def add_to_inventory(inventory_dict, item_list):
'''
Iterate through a list of items to be added to an
inventory dictionary. If key not already in the
dictionary, it gets added to the dictionary
and its value set to zero, then the value is updated
'''
for item in item_list:
inventory_dict.setdefault(item, 0)
inventory_dict[item] += 1
print('{} {}'.format(str(inventory_dict[item]), str(item)))
def display_inventory(inventory_dict):
'''
Display the inventory from a dictionary data structure.
'''
print('Inventory contents (unordered):')
total_num_items = 0
# iterate through the dictionary and print the 'k'ey/'v'alue pairs
for k, v in inventory_dict.items():
print('{}: {}'.format(k, str(v)))
total_num_items += v
print ('Total number of items: {}'.format(str(total_num_items)))
add_to_inventory(stuff, dragon_loot)
display_inventory(stuff)
</code></pre>