Nicolas Alpargatero
EstudianteFrancisco Jesús Eslava Fernández
EstudianteCamilo Andrés Rodriguez Higuera
EstudianteJosue Quevedo Portas
EstudianteEdwin Absalón Martinez Moreno
EstudianteCamilo Andrés Rodriguez Higuera
Estudianteiecgerman .
EstudianteJordan Anderson Huayhua Morales
EstudianteHarold Edward Rodriguez Navarro
EstudianteHarold Edward Rodriguez Navarro
EstudianteGilberto Espinoza Maciel
EstudianteSamuel Henao
EstudianteAlejandro Anaya
EstudianteRuben Vivas
EstudianteJohan Diaz
EstudianteEmilio Sala
EstudiantePeter Javier Carvajal Pacheco
EstudianteGabriel Andrés Montiel Hermosa
EstudianteMario González
EstudianteGustavo Larco
EstudianteErick Infante
EstudianteAlex Xiomar Rubio Lopez
EstudianteAmmper
EstudianteJohan Son
EstudianteLeo OR
EstudianteBraulio Rangel
EstudianteJulio Cardenas
EstudianteBraulio Rangel
EstudianteEmmanuel Paiva
EstudianteAhora entiendo porque tantos programadores son calvos y canosos 🤣 a temprana a edad. Después de solucionarlo, lo simplifique con list comprehension
Muy bien!
Que mas nico!!! Que gusto encontrarte por aca, buena respuesta
Sude pero salió bien todo!!! 😂 .
Muchas gracias, me ayudó a razonar mejor la solución.
def find_famous_cat(cats): name = [] followers = [] famous = [] for cat in cats: name.append(cat["name"]) followers.append(sum(cat["followers"])) for i, value in enumerate(followers, 0): if value == max(followers): famous.append(name[i]) return famous
muy buena tu solución
Utilizando solo los métodos mostrados en este reto, sin nada de temas adelantados:
def find_famous_cat(cats): record = 0 winners = [] for i in cats: count = 0 for j in i['followers']: count+=j if winners==[]: winners.append(i['name']) record = count elif count > record: winners.pop() winners.append(i['name']) record = count elif count == record: winners.append(i['name']) return winners
no funciona para todos los casos, puse a prueba tu solución y no me dio el correcto, es la propuesta #3, esto se debe a que si agregas varios con el máximo número de followers y después agregas a uno con aunque sea un follower más, tu algoritmo eliminará al último de ellos y no al resto, aunque tengan menos seguidores que el ultimo agregado
la solución a esto es cambiar el método pop por del
del famous_cat[:]
Estaba procastinando mis deberes cuando decidi descargar un pomodo con pip. Quiero dedidar un pomodoro al día a este reto, lo complete o no, es acerca de hábito y que Python siempre tendrá una librería o un paquete que haga lo que necesite. Por algo es tan importante aprenderlos.
pip install pydoro
Gracias por tu aporte! Realmente me será muy útil
🛡️🛡️Escudo anti-spoilers🛡️🛡️
Mi solución al reto:
def find_famous_cat(cats): max = 0 famous = list() for cat in cats: total = sum(cat['followers']) if total >= max: if total > max: famous = list() famous.append(cat['name']) max = total return famous
me costo bastante dar con esa solución
def find_famous_cat(cats): return [i['name']for i in cats if max( sum(i['followers']) for i in cats) == sum(i['followers'])]
def find_famous_cat(cats): # Tu código aquí 👈 cats_total = [ { 'name': cat['name'], 'total_follow': sum(cat['followers']) } for cat in cats ] cats_total.sort(reverse =True, key = lambda x: x['total_follow']) famous_cat = [ cat['name'] for cat in cats_total if cat['total_follow'] == cats_total[0]['total_follow'] ] return famous_cat
def find_famous_cat(cats): most_followers = [] total_followers = [] #se suman los followers en una lista for cat in cats: total_followers.append( sum(cat["followers"])) #se consigue el máximo max_followers = max(total_followers) #se añaden los nombres de quienes tengan el max for idx, followers in enumerate(total_followers): if followers == max_followers: most_followers.append(cats[idx]["name"]) return most_followers
Escudo antispoiler
Resolví el ejercicio creando dos arrays que almacenaran uno la sumatoria de la cantidad de fans y otro el nombre del mishi, en la misma iteración para que el índice de cada sumatoria correspondiera al del nombre Luego creé otro bucle que iterara comparando el valor mínimo del array con el máximo y luego eliminara el valor de ese índice en ambos arrays.
<def find_famous_cat(cats): array= [] array2 =[] for i in range(len(cats)): array.append(sum(cats[i]["followers"])) array2.append((cats[i]["name"])) for j in range(len(cats)): if min(array) != max(array): array2.pop(array.index(min(array))) array.pop(array.index(min(array))) return (array2)>
def find_famous_cat(cats): famousCat = "" contador = -1 for i in cats: cat1 = sum(i["followers"]) if cat1 > contador: famousCat = i["name"] contador = cat1 elif cat1 == contador: famousCat += " " + (i["name"]) return famousCat.split(" ") find_famous_cat([ { "name": "Mimi", "followers": [320, 120, 70] }, { "name": "Milo", "followers": [400, 300, 100, 200] }, { "name": "Gizmo", "followers": [250, 750] } ])
. . . . . . . ESTE ES MI CODIGO DESPUES DE DARLE VUELTA UN DIA ENTERO
def find_famous_cat(cats): gatoMasFamoso = [] maxSeguidores = sum(cats[0]['followers']) for gatos in cats: if maxSeguidores == sum(gatos['followers']): gatoMasFamoso.append(gatos['name']) elif maxSeguidores < sum(gatos['followers']): maxSeguidores = sum(gatos['followers']) gatoMasFamoso.clear() gatoMasFamoso.append(gatos['name']) return gatoMasFamoso pass
por que esto no es correcto ?
def find_famous_cat(cats): famous_cat = [] max_followers = 0 for cat in cats: follows = sum(cat["followers"]) if follows > max_followers: max_followers = follows famous_cat.clear() famous_cat.append(cat["name"]) elif follows == max_followers: famous_cat.append(cat["name"]) return famous_cat
def find_famous_cat(cats:dict):
cat_list = []
max_followeers = 0
for cat in cats:
if sum(cat["followers"]) == max_followeers:
cat_list.append(cat["name"])
elif sum(cat["followers"]) > max_followeers:
cat_list.clear()
cat_list.insert(0,cat["name"])
max_followeers = sum(cat["followers"])
return cat_list
Esta opcion de consola de prueba es muy subjetiva. Como dice el dicho "Existen varios caminos que llegan a Roma".
Esta seria mi solucuión:
def find_famous_cat(cats):
max_followers = -1
famous_cat = ""
for cat in cats:
total = sum(cat["followers"])
if total > max_followers:
max_followers = total
famous_cat = cat["name"]
return famous_cat
print(find_famous_cat([
{
"name": "Luna",
"followers": [500, 200, 300]
},
{
"name": "Michi",
"followers": [100, 300]
}
]) )
def find_famous_cat(cats): max_followers = 0 famous = [] for cat in cats: total = sum(cat['followers']) if total >= max_followers: if total > max_followers: famous = [] famous.append(cat['name']) max_followers = total return famous # Lista de gatos con sus seguidores cats = [ { "name": "Mimi", "followers": [320, 120, 70] }, { "name": "Milo", "followers": [400, 300, 100, 200] }, { "name": "Gizmo", "followers": [250, 750] } ] # Llamada a la función e impresión del resultado famous_cats = find_famous_cat(cats) print("Los gatos más famosos son:", ", ".join(famous_cats))
porque todos ponen: ESCUDO ANTI-SPOILER?
que tal buen dia a todos se tiene que hacer los dos ejemplos ? el ejemplo 1 y 2 ? o solo uno ? la verdad no le estoy entendiendo a este curso como se tiene que hacer ? desde el principio porque la vedad lei todo desde la clase uno pero ya los ejercicios ninguno me sale bien me sale error ¡ y como ningun ejejrciico me sale bien echo me sigo al siguiente ¡ ayuda porfavor ¡
Cómo corigo o a que se refiere? de antemano gracias
test_zero_followers UnboundLocalError:
def find_famous_cat(cats): suma = suma_t = 0 lista = [""] for i in cats: for n in i["followers"]: suma += n if suma_t < suma: lista.pop() suma_t = suma suma = 0 #print (i["name"],suma_t) lista = [i["name"]] elif suma_t == suma: suma = 0 lista.append(i["name"]) return lista
El error es como estas inicializando la variable lista:
lista = [""]
cuando en la prueba te pasan un gato sin followers devuelves por ejemplo:
['', 'Luna']
eso se corrige inicializando la lista como:
lista = []
Muchas gracias
lo volví hacer, diferente
def find_famous_cat(cats): # Tu código aquí 👈 lista_followers = [] lista_name = [] lista_maximo = [0] lista_max_nom = [] lista_total = [] cont = 0 for n in cats: lista_name.append((n["name"])) lista_followers.append(sum(n["followers"])) lista_total = (list(zip(lista_name,lista_followers))) for e,num in enumerate(lista_total): if lista_maximo[cont] < lista_total[e][1]: print("mayor") lista_maximo = [] lista_max_nom = [] lista_maximo.append(lista_total[e][1]) lista_max_nom.append(lista_total[e][0]) cont = 0 elif lista_maximo[cont] == lista_total[e][1]: print("men") lista_maximo.append(lista_total[e][1]) lista_max_nom.append(lista_total[e][0]) cont += 1 print(lista_maximo) print(lista_max_nom)```
Mi solución:
def find_famous_cat(cats): # Tu código aquí 👈 michis = [] max_follows = 0 for cat in cats: follows = 0 for value in cat['followers']: follows += value if follows > max_follows: michis = [cat['name']] max_follows = follows elif follows == max_follows: michis.append(cat['name']) return michis