shorthand si else en comprensión de lista
Este es mi código para obtener la mitad y el doble de los números pares e impares en una lista. Sé que funcionará con un bucle “for” en bloque. Pero quiero saber por qué la comprensión de lista no funcionó.
Gracias de antemano 😀
entrada = input('Ingrese una lista de números ').split()
<h1>Convertir todos los elementos a enteros</h1>
datos = [int(x) for x in entrada]
print(datos)
resultado = [(a/2 si a%2==0 else 2*a) para a en datos]
print(datos)
OUTPUT:
Ingrese una lista de números 3 4 5
[3, 4, 5]
[3, 4, 5]
[Programa finalizado]
davy.ai
La comprensión de lista dada en el código es correcta y debería funcionar bien. La razón por la que no obtienes ninguna salida es que estás imprimiendo la variable equivocada. En el código, estás imprimiendo la lista original “data” en lugar de la lista creada por la comprensión de lista “rslt”.
Para solucionar este problema, simplemente cambia la instrucción de impresión de “print(data)” a “print(rslt)” como se muestra a continuación:
Esto debería darte la salida deseada: