En Python 2.x, print
es una afirmación, no una función. Si prueba esto en Python 3.x, funcionará.
En Python 2.x, puede decir print(x)
y no es un error de sintaxis, pero en realidad no es una llamada de función. Al igual que 1 + (3)
es lo mismo que 1 + 3
, print(x)
es lo mismo que print x
en Python 2.x.
En Python 2.x se puede hacer esto:
def prn(x):
print x
entonces usted puede hacer:
map(prn, lst)
y funcionará. Tenga en cuenta que probablemente no desee hacer lst = map(prn, lst)
porque prn()
devuelve None
, por lo que reemplazará su lista de valores con una lista de igual longitud que el valor None
.
EDIT: otras dos soluciones para Python 2.x.
Si desea cambiar por completo el comportamiento de print
, usted puede hacer esto:
from __future__ import print_function
map(print, lst)
Esto hace print
en una función tal como es en Python 3.x, por lo que funciona con map()
.
O bien, puede hacer esto:
from pprint import pprint
map(pprint, lst)
pprint()
es una función que imprime cosas y está disponible como un built-in. No estoy exactamente seguro de cómo es diferente del valor predeterminado print
(dice que es una función de "impresión bonita" pero no estoy seguro de cómo exactamente eso lo hace diferente).
Además, de acuerdo con el estándar PEP 8, no se recomienda usar l
como nombre de variable, así que estoy usando lst
en lugar de mis ejemplos.
http://www.python.org/dev/peps/pep-0008/
No explotará, pero es muy probable que no funcione como se esperaba. Supongo que clwen quería realmente imprimir cosas y no obtener ''. Si desea imprimirlo, debe iterar sobre el objeto del mapa. –
No estoy seguro de lo que quiere decir con "no explotará" ... si intenta ejecutar 'map (print, [])' en Python 2.x obtendrá 'SyntaxError: sintaxis inválida' porque' print 'es una declaración. Debes haberlo probado en Python 3.x, donde 'print' es una función y es perfectamente legal pasarlo a' map() '. En Python 2.x 'map()' devuelve una lista, no un '
Quise decir: Sí, estás en lo cierto, 'map (print, [])' no explotará (arroja una excepción) en Python 3. Pero aunque no lanza una excepción, el resultado probablemente no sea el que más Llegar. –