列表到字典的函数,针对好玩游戏物品清单
假設(shè)征服一條龍的戰(zhàn)利品表示為這樣的字符串列表:?
dragonLoot ?= ?['gold ?coin', ?'dagger', 'gold ?coin', 'gold ?coin', 'ruby']?
寫一個(gè)名為 addToInventory(inventory, ?addedItems)的函數(shù),其中 inventory參數(shù)是一個(gè)字典,表示玩家的物品清單(像前面項(xiàng)目一樣),addedItems參數(shù)是一個(gè)列表,就像 dragonLoot。?
?? ?addToInventory()函數(shù)應(yīng)該返回一個(gè)字典,表示更新過(guò)的物品清單。請(qǐng)注意,列表可以包含多個(gè)同樣的項(xiàng)。你的代碼看起來(lái)可能像這樣:?
?
前面的程序(加上前一個(gè)項(xiàng)目中的 displayInventory()函數(shù))將輸出如下:?
Inventory:? 45 ?gold ?coin? 1 ?rope? 1 ?ruby? 1 ?dagger?Total ?number ?of ?items: ?48?這個(gè)問(wèn)題的核心就是如何統(tǒng)計(jì)列表中元素的個(gè)數(shù),然后把列表轉(zhuǎn)成字典合并到先前的物品清單的字典中。
?
統(tǒng)計(jì)列表中元素的個(gè)數(shù),可以用字典的get方法或者setdefaul方法,下面是代碼:
def displayInventory(things):print('Inventory:')amount = 0for k, v in things.items():print(v,k)amount=amount+vprint('Total number of items:', amount)def addToInventory(inventory, addedItems):for k in addedItems:inventory[k]=inventory.get(k,0)+1return inventorystuff={'rope':1, 'torch':6, 'gold coin':42, 'dagger':1, 'arrow':12} dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']stuff=addToInventory(stuff, dragonLoot) displayInventory(stuff) addToInventory函數(shù)也可以不用get()方法,用setdefault()方法實(shí)現(xiàn),效果一樣: def add_inventory(inventory, addedItems):for k in addedItems:inventory.setdefault(k, 0)inventory[k] = inventory[k]+1return inventory總結(jié)
以上是生活随笔為你收集整理的列表到字典的函数,针对好玩游戏物品清单的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java vo层_java的几种对象(P
- 下一篇: 选定目标和非功利性学习