La impresión no se imprime cuando está en el mapa, Python

primes = [2,3,5,7..] (prime numbers) map(lambda x:print(x),primes) 

No imprime nada. ¿Porqué es eso? He intentado

 sys.stdout.write(x) 

también, pero tampoco funciona.

Dado que lambda x: print(x) es un error de syntax en Python <3, asumo Python 3. Eso significa que map devuelve un generador, lo que significa que el mapa realmente llama a la función en cada elemento de una lista, necesita iterar a través del generador resultante.

Afortunadamente, esto se puede hacer fácilmente:

 list(map(lambda x:print(x),primes)) 

Ah, y puedes deshacerte de la lambda también, si quieres:

 list(map(print,primes)) 

Pero, en ese punto, es mejor dejar que la impresión lo maneje:

 print(*primes, sep='\n') 

NOTA: Dije antes que '\n'.join sería una buena idea. Eso solo es cierto para una lista de str’s.

Esto funciona para mí:

 >>> from __future__ import print_function >>> map(lambda x: print(x), primes) 2 3 5 7 17: [None, None, None, None] 

¿Estás usando Python 2.x donde print es una statement, no una función?