primes = [2,3,5,7..] (prime numbers)
map(lambda x:print(x),primes)
No imprime nada. ¿Por qué es eso? He intentadoLa impresión no se imprime cuando está en el mapa, Python
sys.stdout.write(x)
también, pero no funciona bien.
primes = [2,3,5,7..] (prime numbers)
map(lambda x:print(x),primes)
No imprime nada. ¿Por qué es eso? He intentadoLa impresión no se imprime cuando está en el mapa, Python
sys.stdout.write(x)
también, pero no funciona bien.
Desde lambda x: print(x)
es un error de sintaxis en Python 3 <, estoy asumiendo Python 3. Eso significa map
devuelve un generador, es decir, para obtener un mapa de llamar realmente la función de cada elemento de una lista, es necesario recorrer el generador resultante.
Afortunadamente, esto se puede hacer fácilmente:
list(map(lambda x:print(x),primes))
Ah, y usted puede deshacerse de la lambda también, si se quiere:
list(map(print,primes))
Pero, en ese momento es mejor con la impresión dejando manejarlo:
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.
Todavía es una muy mala idea (no idiomático, no obvio - mapas, filtros, listas de comprensión, etc. son para cálculos, no para efectos secundarios) aunque. Solo debe usar un ciclo for, o 'print (* primes, sep = '\ n')', o 'print ('\ n'.join (str (x) para x en números primos))'. – delnan
'print (x)' no es un error de sintaxis en Python <3. Edit: Lo sentimos, es un error de sintaxis en esta pregunta. – utdemir
@utdemir: Ocurriendo en un 'lambda' o cualquier otra expresión, es (con o sin parens). Supongo que OP significaba eso y que solo quiere poner atención a la redacción;) – delnan
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á utilizando Python 2.x, donde la impresión es una afirmación, no una función?
Funciona específicamente porque está usando Python 2. En Python 3, no funciona. Y OP es más probable que utilice 3.x ya que 'print' se usa como función y dado que' sys.stdout.write' "tampoco funciona". – delnan
puedes hacer 'map (print, primes)' directamente, sin definir una función lambda. – hitzg
Python 2 o Python 3? –
Eso es un error de sintaxis en Python 2, así que asumiría Python 3. –