列表到字典的函数,针对好玩游戏物品清单
生活随笔
收集整理的這篇文章主要介紹了
列表到字典的函数,针对好玩游戏物品清单
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
假設征服一條龍的戰利品表示為這樣的字符串列表:?
dragonLoot ?= ?['gold ?coin', ?'dagger', 'gold ?coin', 'gold ?coin', 'ruby']?
寫一個名為 addToInventory(inventory, ?addedItems)的函數,其中 inventory參數是一個字典,表示玩家的物品清單(像前面項目一樣),addedItems參數是一個列表,就像 dragonLoot。?
?? ?addToInventory()函數應該返回一個字典,表示更新過的物品清單。請注意,列表可以包含多個同樣的項。你的代碼看起來可能像這樣:?
?
前面的程序(加上前一個項目中的 displayInventory()函數)將輸出如下:?
Inventory:? 45 ?gold ?coin? 1 ?rope? 1 ?ruby? 1 ?dagger?Total ?number ?of ?items: ?48?這個問題的核心就是如何統計列表中元素的個數,然后把列表轉成字典合并到先前的物品清單的字典中。
?
統計列表中元素的個數,可以用字典的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函數也可以不用get()方法,用setdefault()方法實現,效果一樣: def add_inventory(inventory, addedItems):for k in addedItems:inventory.setdefault(k, 0)inventory[k] = inventory[k]+1return inventory總結
以上是生活随笔為你收集整理的列表到字典的函数,针对好玩游戏物品清单的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java vo层_java的几种对象(P
- 下一篇: Mysql原理篇之索引不懂不要瞎用---