次のリスト内包表記で、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]
次のリスト内包表記で、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]
print は関数ではなくステートメントであるため、式に含めることはできません。通常の Python 2 構文を使用すると、これはより明白になります。
my_list=[1,2,3]
[print my_item for my_item in my_list]
それはあまり正しくないようです。:) my_item を囲む括弧はあなたをだまします。
これは Python 3 で変更されました。ところで、printは関数であり、コードは問題なく動作します。
print
は関数ではないため、構文エラーです。声明です。からの戻り値を気にしないのは明らかなのでprint
(何もないため)、通常のループを記述します。
for my_item in my_list:
print my_item