Skip to content

Instantly share code, notes, and snippets.

@hcosta
Created February 15, 2022 11:30
Show Gist options
  • Save hcosta/d60379cab2df4e3c920a76c5ad806194 to your computer and use it in GitHub Desktop.
Save hcosta/d60379cab2df4e3c920a76c5ad806194 to your computer and use it in GitHub Desktop.
# La solución provista es incorrecta debido a lo siguiente:
del( l[i] )
# Al borrar el elemento de la posición actual hay que tener en cuenta que
# la siguiente vez que recorremos la lista, el índice habrá corrido una
# posición pero el número de elementos se habrá reducido y por tanto
# no se borrará el elemento que toca.
# Si en lugar de eliminar los elementos de la lista, generamos una nueva
# lista sólo con los pares, entonces todo se soluciona bien:
def modificar(l):
l = list(set(l)) # Borrar los elementos duplicados (recrea la lista a partir de un nuevo diccionario)
l.sort(reverse=True) # Ordenar la lista de mayor a menor
l_tmp = [] # Lista temporal que contendrá solo los números pares
for n in l:
if n%2 == 0:
l_tmp.append(n)
suma = sum(l_tmp) # Realizar una suma de todos los números que quedan
l_tmp.insert(0, suma) # Añadir como primer elemento de la lista de pares la suma realizada
return l_tmp # Devolver la lista de pares modificada
@LuisAntonioGI13
Copy link

Hola, yo lo que hice fue crear una "nueva" lista a la que le agregue los elementos pares, y al final, la renombre como la lista original

nueva_lista = []
for i in lista:
    if i%2 ==0:
      nueva_lista.append(i)
lista = nueva_lista

@Leramzes
Copy link

Leramzes commented Apr 5, 2024

Hola, yo realice esto:
def modificar(lis):
lst = list(set(lis))
lst.sort(reverse=True)

for l in (lst):
    if l%2!=0:
        lst.remove(l)

suma = sum(lst)

lst.insert(0,suma)

 
    return lst

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment