Conductores
Considerando la siguiente estructura de datos:
conductores = {
#username: [nombre, puntaje, [marca, modelo]]
'azambrano': ['Andres Zambrano', 5.6, ['Hyundai', 'Elantra']],
'jojeda': ['Juan Ojeda', 1.1, ['Hyundai', 'Accent']],
#...
}
a) Desarrolle la función agrega_conductor(conductores, nuevo_conductor) donde
nuevo_conductor corresponde a una lista con los siguientes datos [username, nombre_completo, puntaje, [marca, modelo]]. Por ejemplo;
>>> agrega_conductor(conductores,['fsoto', 'Fabiola Soto', 4.4, ['Peugeot', '308']])
True
True. Si el username del conductor a
agregar ya existe, no modifique el diccionario y sólo retorne False.
b) Desarrolle la función elimina_conductor(condutores, username) que elimine el conductor
con el username desde la estructura conductores.
>>> elimina_conductor(conductores, 'jojeda')
True
>>> elimina_conductor(conductores, 'pmunoz')
False
ranking(conductores) que recibe el diccionario conductores y entrega
una lista de listas con los usernames y puntajes, ordenados de mayor a menor puntaje.
Por ejemplo;
>>> ranking(conductores)
[['Andres Zambrano', 5.6], ['Fabiola Soto', 4.4]]
Solución
def agrega_conductor(conductores, nuevo_conductor):
username = nuevo_conductor[0]
nombre = nuevo_conductor[1]
puntaje = nuevo_conductor[2]
marca = nuevo_conductor[3][0]
modelo = nuevo_conductor[3][1]
if username in conductores:
return False
conductores[username] = [nombre, puntaje, [marca, modelo]]
return True
def elimina_conductor(conductores, username):
if username not in conductores:
return False
del conductores[username]
return True
def ranking(conductores):
r = []
for c in conductores:
r.append([conductores[c][1], conductores[c][0]])
r.sort()
r.reverse()
final = []
for datos in r:
puntaje = datos[0]
nombre = datos[1]
final.append([nombre, puntaje])
return final
conductores = {
'azambrano': ['Andres Zambrano', 5.6, ['Hyundai', 'Elantra']],
'jojeda': ['Juan Ojeda', 1.1, ['Hyundai', 'Accent']],
# ...
}
print(agrega_conductor(conductores,['fsoto', 'Fabiola Soto', 4.4, ['Peugeot', '308']]))
print(elimina_conductor(conductores, 'jojeda'))
print(elimina_conductor(conductores, 'pmunoz'))
print(ranking(conductores))