[ Foro de Python ]

reduccuon codigo

22-Nov-2019 21:12
Invitado (Davinia Nido)
3 Respuestas

Me estoy estrujando el cerebro...
¿Este código se puede hacer en una sola lineal y que te devuelva una lista)


def devuielveimpares (lista):
    for i in lista:
        if i%2!=0:
            print (i)
devuielveimpares(lista)


 


23-Nov-2019 00:26
Nacho Cabanes (+84)

Ese código no devuelve nada, sólo muestra en pantalla. ¿Te refieres a si se puede crear una lista de impares con una única orden?


24-Nov-2019 12:21
Invitado (Davinia Nido)


Se trata de una función que si le introduces una lista con números, devuelve los números impares

lista = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
def devuielveimpares (lista):
   for i in lista:
       if i%2!=0:
           print (i)
       
devuielveimpares(lista)

La cuestión es hacer ese mismo código en una sola línea... se que se puede hacer pero no soy capaz...


24-Nov-2019 17:56
Nacho Cabanes (+84)

Insisto en que eso no devuelve un valor en el sentido convencional de funciones que devuelven valores, sino que sólo muestra en pantalla. Pero bueno, si lo que quieres es que aparezca en pantalla, lo podrías hacer en una linea con:


lista = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print([x for x in lista if x % 2 != 0])


 






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)