2017-06-13 16 views
-2

このコード行を実行すると、なぜInvalidSyntaxエラーが発生しますか?Python:リストの理解のための無効な構文エラー

y=[0 for iii range(500)] 
+4

リスト内包表記に 'in'キーワードがありません。 –

+0

あなたの問題マリーは、あなたのリスト理解の中であなたの欠けている 'in'演算子です。だからこそ、Pythonは不平を言っている。あなたのコードは実際に 'y = [0の範囲(500)には0]'でなければなりません。 'iii'と' range(500) 'の間の' in 'に注目してください。 –

+1

ところで、500個のゼロのリストが必要な場合は、単に 'y = [0] * 500'を実行してください。 'y = {0 for i in range(500) '}よりも効率的です。 –

答えて

0

はい、コメントに指摘されている構文が正しくありません。

y = [0 for _ in range(500)] 

または

y = [0] * 500 

(クレジット:PM2リング)

または

y = map(int, '0' * 500) 

または(あなたがnumpyのがインストールされている場合のみ)

ここではいくつかのオプションがあります。
import numpy as np 
y = np.zeros(500) 

第4のオプションはmemsetであり、本当に高速です。

関連する問題