[ Foro de Python ]
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)
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?
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...
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.)