2016-06-24 13 views
-1

私たちはjavaScriptコードをPythonに翻訳するプロジェクトに取り組んでいます。javascript to python array翻訳

"primes" is an empty array BTW.

はJavaScript:

var primes = []; 

if(primes[primes.length - 1] > 3){...} 

のPython:

primes = [] 

if primes[len(primes) - 1] > 3: 
     ...... 

このコード作品すべてが複数の翻訳で私たちにエラーを与えているコードのこの1行を除いて、かなりスムーズに起こっていますjavascriptでは、Pythonではエラーが発生します。存在しないリストのインデックスにアクセスしようとしているようです。

これはエラーです:

TypeError: object of type 'int' has no len()

誰もが回避策を持っていますか?

+2

を使用することができ、リストの最後を取得するために提示してくださいあなたは '素数'を宣言しています。 – nnnnnn

+3

'primes'は明らかに空の配列ではなく、' int'です。 [mcve]を作成してください。 – GingerPlusPlus

+0

両方のインスタンスで配列を宣言していますが、intを宣言している場合、どのように宣言する必要がありますか? –

答えて

4

あなたのコードは、この方法を変更する必要がありますので、Pythonは安全に取得していない。

primes = [] 

if primes and primes[len(primes) - 1] > 3: 
    ... 

さらに良いことに、あなたはprimes[-1]

primes = [] 

if primes and primes[-1] > 3: 
    ... 
+0

リストが空でないことをテストするには、 'if myList'を使うだけで、リストの最後の要素にアクセスするには' myList [-1] 'を使うことができます。 – Mel

+0

@Melありがとう、私は答えを変更しました。 –

+2

も参照してください[なぜリストには辞書のような安全な "get"メソッドがありませんか?](http://stackoverflow.com/q/5125619/120999) –