Понимание списка: почему это - синтаксическая ошибка?

Почему 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]
47
задан Lennart Regebro 5 October 2013 в 17:41
поделиться

2 ответа

Поскольку печатается не функция, это оператор, и вы не можете иметь их в выражениях. Это становится более очевидным, если вы используете обычный синтаксис Python 2:

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

, который не выглядит совсем так. :) скобкими в скобках вокруг My_item трюки вас.

Это изменилось в Python 3, BTW, где печать - это функция , где ваш код работает просто нормально.

61
ответ дан 26 November 2019 в 19:45
поделиться

Это синтаксическая ошибка, поскольку печать не является функцией. Это утверждение. Так как вас явно не волнует возвращаемое значение из print (так как его нет), просто запишите нормальный цикл:

for my_item in my_list:
    print my_item
7
ответ дан 26 November 2019 в 19:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: