Skip to content

Instantly share code, notes, and snippets.

@hcosta
Created February 15, 2022 11:30
Show Gist options
  • Select an option

  • Save hcosta/d60379cab2df4e3c920a76c5ad806194 to your computer and use it in GitHub Desktop.

Select an option

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
@MisterJpeeexD

Copy link
Copy Markdown

Yo lo hice asi, cumple y lo hice usando solo una lista, pero no se si puedo hacerlo asi:

Completa el ejercicio aquí

lista = [29, -5, -12, 17, 5, 24, 5, 12, 23, 16, 12, 5, -12, 17]

def modificar(lst): lista_modificada = lst.copy()

contar = 0
sumar = 0

while True:
    try:      
        if lista_modificada.count(lista_modificada[contar]) > 1:
            lista_modificada.remove(lista_modificada[contar])

        elif lista_modificada[contar] % 2 != 0:
            lista_modificada.remove(lista_modificada[contar])
        
        else:
            contar += 1 
            
    except:
        break

lista_modificada.sort(reverse=True)

for numero in lista_modificada:
    sumar += numero

lista_modificada.insert(0,sumar)

return lista_modificada

valor = modificar(lista) resultado = None verificacion = 0 contar = 1

for i in valor: if i == valor[0]: resultado = i

else:
    verificacion += i
    contar += 1
    if contar == len(valor):
        if verificacion == resultado:
            print("Correcto")

        else:
            print("Valor erroneo")

Ahora usando los metodos de python, lo simplifique asi:

lista_modificada = []
def modificar(lst):
lista_modificada = list(set(lst))

lista_modificada.sort(reverse=True)
l_pares = []

for pares in lista_modificada:
    if pares % 2 == 0:
        l_pares.append(pares)

suma_total = sum(l_pares)

l_pares.insert(0,suma_total)

return l_pares

valor = modificar(lista)
print(valor[0] == sum(valor[1:]))

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