Почему print(x)
здесь не допустимый (SyntaxError
) в следующем понимании списка?
my_list=[1,2,3]
[print(my_item) for my_item in my_list]
Для контрастирования - следующее не дает синтаксическую ошибку:
def my_func(x):
print(x)
[my_func(my_item) for my_item in my_list]
Поскольку печатается не функция, это оператор, и вы не можете иметь их в выражениях. Это становится более очевидным, если вы используете обычный синтаксис Python 2:
my_list=[1,2,3]
[print my_item for my_item in my_list]
, который не выглядит совсем так. :) скобкими в скобках вокруг My_item трюки вас.
Это изменилось в Python 3, BTW, где печать - это функция , где ваш код работает просто нормально.
Это синтаксическая ошибка, поскольку печать
не является функцией. Это утверждение. Так как вас явно не волнует возвращаемое значение из print
(так как его нет), просто запишите нормальный цикл:
for my_item in my_list:
print my_item