Cita de: Locura_23 en 31 Julio 2021, 17:53 PM
Tengo poca experiencia en Python, pero como nadie aún te ha respondido te dejo mi idea, creo que la lista deberia contener [0,1,2,3,4,5]
En el primer for recorres un rango de numeros del 0 al 5, donde tenes un if anidado, luego en ese if calculas el módulo de cada uno de los números dentro del rango. Como lo igualas a cero, ahí vas a sacar todos los números pares.
En el segundo for haces lo mismo que en el anterior, pero el módulo está igualado a uno entonces, obtenes todos los números impares.
Luego con filter tal vez sea algo así:Código (python) [Seleccionar]
numeros = [0,1,2,3,4,5];
pares = list( filter(lambda x: x % 2 == 0 ) );
impares = list( filter(lambda y: y % 2 == 1 ) );
Con map:Código (python) [Seleccionar]
numeros = [0,1,2,3,4,5];
pares = list( map(lambda x: x % 2 == 0), numeros );
impares = list( map(lambda y: y % 2 == 1), numeros );
En primer lugar, gracias por la respuesta
Cuando dices que la lista debería contener "[0, 1, 2, 3, 4, 5]" no sé si haces referencia a la función range que he utilizado (range(5)).
Si es así, a la función range cuando le pasamos únicamente un parámetro lo toma como el valor de "parada". Tal y como índica la documentación el valor de "parada" es omitido, por lo tanto la función range(5) devolvería una lista con los valores "[0, 1, 2, 3, 4]".
En lo que se refiere a la segunda parte de la respuesta, mi intención era buscar la forma de combinar los dos bloques de código que has publicado para tener una lista de tuplas tal que así:
Código [Seleccionar]
[(0, 1), (0, 3), (2, 1), (2, 3), (4, 1), (4, 3)]
Se puede hacer de diferentes formas y con varias líneas de código, pero quería buscar la fórmula para hacer en una única línea de código mezclando las utilidades filter y map.
Lo dicho, gracias por la respuesta