Saltar a contenido
 No os perd谩is mi futuro contenido, seguidme en y Youtube 馃榿

Ejercicios 芦 Colecciones de datos

Ejercicio 1

Realiza un programa que siga las siguientes instrucciones:

  • Crea un conjunto llamado usuarios con los usuarios Marta, David, Elvira, Juan y Marcos
  • Crea un conjunto llamado administradores con los administradores Juan y Marta.
  • Borra al administrador Juan del conjunto de administradores.
  • A帽ade a Marcos como un nuevo administrador, pero no lo borres del conjunto de usuarios.
  • Muestra todos los usuarios por pantalla de forma din谩mica, adem谩s debes indicar cada usuario es administrador o no.

Sugerencia

Los conjuntos se pueden recorrer din谩micamente utilizando el bucle for de forma similar a una lista.
Tambi茅n cuentan con un m茅todo llamado .discard(elemento) que sirve para borrar o descartar un elemento.

Soluci贸n

Note

usuarios = {"Marta", "David", "Elvira", "Juan", "Marcos"}
administradores = {"Juan", "Marta"}

administradores.discard("Juan")
administradores.add("Marcos")

for usuario in usuarios:
    if usuario in administradores:
        print(usuario, "es admin")
    else:
        print(usuario, "no es admin")
Marta es admin
David no es admin
Elvira no es admin
Marcos es admin
Juan no es admin

Ejercicio 2

Durante el desarrollo de un peque帽o videojuego se te encarga configurar y balancear cada clase de personaje jugable. Partiendo que la estad铆stica base es 2, debes cumplir las siguientes condiciones:

  • El caballero tiene el doble de vida y defensa que un guerrero.
  • El guerrero tiene el doble de ataque y alcance que un caballero.
  • El arquero tiene la misma vida y ataque que un guerrero, pero la mitad de su defensa y el doble de su alcance.
  • Muestra como quedan las propiedades de los tres personajes.

Soluci贸n

Note

caballero = { 'vida':2, 'ataque':2, 'defensa': 2, 'alcance':2 }
guerrero  = { 'vida':2, 'ataque':2, 'defensa': 2, 'alcance':2 }
arquero   = { 'vida':2, 'ataque':2, 'defensa': 2, 'alcance':2 }

# Completa el ejercicio aqu铆
caballero = { 'vida':2, 'ataque':2, 'defensa': 2, 'alcance':2 }
guerrero  = { 'vida':2, 'ataque':2, 'defensa': 2, 'alcance':2 }
arquero   = { 'vida':2, 'ataque':2, 'defensa': 2, 'alcance':2 }

# Completa el ejercicio aqu铆
caballero['vida']    = guerrero['vida'] * 2
caballero['defensa'] = guerrero['defensa'] * 2

guerrero['ataque']   = caballero['ataque'] * 2
guerrero['alcance']  = caballero['alcance'] * 2

arquero['vida']     = guerrero['vida']
arquero['ataque']   = guerrero['ataque']
arquero['defensa']  = guerrero['defensa'] / 2
arquero['alcance']  = guerrero['alcance'] * 2

print("Caballero:\t", caballero)
print("Guerrero:\t", guerrero)
print("Arquero:\t", arquero)
Caballero:  {'ataque': 2, 'defensa': 4, 'alcance': 2, 'vida': 4}
Guerrero:   {'ataque': 4, 'defensa': 2, 'alcance': 4, 'vida': 2}
Arquero:    {'ataque': 4, 'defensa': 1.0, 'alcance': 8, 'vida': 2}

Ejercicio 3

Durante la planificaci贸n de un proyecto se han acordado una lista de tareas. Para cada una de estas tareas se ha asignado un orden de prioridad (cuanto menor es el n煤mero de orden, m谩s prioridad).

驴Eres capaz de crear una estructura del tipo cola con todas las tareas ordenadas pero sin los n煤meros de orden?

Sugerencia

Para ordenar autom谩ticamente una lista es posible utilizar el m茅todo .sort(), deberias probarlo.

Soluci贸n

Note

tareas = [ 
    [6, 'Distribuci贸n'],
    [2, 'Dise帽o'],
    [1, 'Concepci贸n'],
    [7, 'Mantenimiento'],
    [4, 'Producci贸n'],
    [3, 'Planificaci贸n'],
    [5, 'Pruebas']
]

print("==Tareas desordenadas==")
for tarea in tareas:
    print(tarea[0], tarea[1])

# Completa el ejercicio aqu铆
tareas = [ 
    [6, 'Distribuci贸n'],
    [2, 'Dise帽o'],
    [1, 'Concepci贸n'],
    [7, 'Mantenimiento'],
    [4, 'Producci贸n'],
    [3, 'Planificaci贸n'],
    [5, 'Pruebas']
]

print("==Tareas desordenadas==")
for tarea in tareas:
    print(tarea[0], tarea[1])

# Completa el ejercicio aqu铆
from collections import deque

tareas.sort()

cola = deque()
for tarea in tareas:
    cola.append(tarea[1])

print("\n==Tareas ordenadas==")
for tarea in cola:
    print(tarea)
==Tareas desordenadas==
6 Distribuci贸n
2 Dise帽o
1 Concepci贸n
7 Mantenimiento
4 Producci贸n
3 Planificaci贸n
5 Pruebas

==Tareas ordenadas==
Concepci贸n
Dise帽o
Planificaci贸n
Producci贸n
Pruebas
Distribuci贸n
Mantenimiento

脷ltima edici贸n: 23 de Septiembre de 2018