tipos syntaxerror solucion sintaxis significa que print invalid imprimir errores error python list-comprehension python-2.6

python - solucion - syntaxerror invalid syntax que significa



Comprensión de la lista: ¿por qué es esto un error de sintaxis? (3)

¿Por qué print(x) aquí no es válido ( SyntaxError ) en la siguiente lista-comprensión?

my_list=[1,2,3] [print(my_item) for my_item in my_list]

Para contrastar, lo siguiente no da un error de sintaxis:

def my_func(x): print(x) [my_func(my_item) for my_item in my_list]


Debido a que imprimir no es una función, es una afirmación, y no puede tenerlos en expresiones. Esto se vuelve más obvio si usas la sintaxis normal de Python 2:

my_list=[1,2,3] [print my_item for my_item in my_list]

Eso no se ve bien. :) Los paréntesis alrededor de mi elemento te engañan.

Esto ha cambiado en Python 3, por cierto, donde imprimir es una función, donde tu código funciona bien.


Es un error de sintaxis porque print no es una función. Es una declaración. Como obviamente no le importa el valor de retorno de la print (ya que no tiene ninguno), solo escriba el ciclo normal:

for my_item in my_list: print my_item


la lista de comprensión está diseñada para crear una lista. Por lo tanto, si imprimimos en su interior, daremos un error, no importa, que usemos print () o que imprimamos en 2.7 o 3.x. El código

[my_item for my_item in my_list]

crea un nuevo objeto de lista de tipos.

print [my_item for my_item in my_list]

imprime esta nueva lista como un todo

referirse: here