48

次のリスト内包表記で、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]
4

4 に答える 4

61

print は関数ではなくステートメントであるため、式に含めることはできません。通常の Python 2 構文を使用すると、これはより明白になります。

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

それはあまり正しくないようです。:) my_item を囲む括弧はあなたをだまします。

これは Python 3 で変更されました。ところで、print関数であり、コードは問題なく動作します。

于 2010-01-26T17:12:17.957 に答える
7

printは関数ではないため、構文エラーです。声明です。からの戻り値を気にしないのは明らかなのでprint(何もないため)、通常のループを記述します。

for my_item in my_list:
    print my_item
于 2010-01-26T17:12:28.830 に答える