Agregar Loot a Inventario de Videojuego


Descripción

Imagina que la recompensa por derrotar a un dragón se representa con un a lista de cadenas como la siguiente:

dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']

Escribe una función llamada addToInventory(inventory, addedItems) dónde el parámetro de inventory es un diccionario que representa el inventario del jugador y el parámetro addedItems es una lista como dragonLoot. La función addToInventory debe devolver un diccionario que represente el inventario actualizado después de agregar los elementos del loot adquirido. Nota que la lista addedItems puede contener varias copias del mismo artículo.

Puedes seguir la siguiente estructura para tu código:

def addToInventory(inventory, addedItems):
    # aquí va tu código

inv = {'gold coin': 42, 'rope': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToInventory(inv, dragonLoot)
displayInventory(inv)

Ejemplo de Ejecución:

Un programa que muestre el inventario actualizado (como la de este ejercicio) mostraría lo siguiente después de ejecutar la línea addToInventory(inv, dragonLoot) de la plantilla de código que se mostró anteriormente:

Inventario:
45 gold coin
1 rope
1 ruby
1 dagger

Número total de elementos: 48

Solución

Mostrar solución
def addToInventory(inventory, addedItems):
  for item in addedItems:
    if item in inventory:
      inventory[item] += 1
    else:
      inventory[item] = 1
  return inventory


inv = {'gold coin': 42, 'rope': 1}
dragonLoot = ['gold coin', 'dagger', 'gold coin', 'gold coin', 'ruby']
inv = addToInventory(inv, dragonLoot)
displayInventory(inv)

Probar solución en Google Colab

Fuente del ejercicio: https://automatetheboringstuff.com/2e/chapter5/#calibre_link-206