2017-04-04 3 views
-1
opponent = [1, 1, 1, 1, 1, 1] 

間違っているかわからないので、私は、コード:はIndexErrorが、私は私のリストでちょうど最初の要素「相手たい

opponent = int(opponent[0]) 

私は、その後の数をカウントするためにこれを使用私の他のリストの1つに相手のものがある。

if wongames.count(opponent) == 2: 
...blablabla 

それは私の提出が ラインで型はIndexErrorの例外を上げたと言います。 '相手= int(相手[0])'。

なぜですか?これをどうやって解決するのですか? :(

+0

あなたの質問は不明です。コードを投稿する必要があります。なぜintをintにキャストしていますか? int(oppponent [0])。 – Wiredo

+1

変数名を 'opponent'に変更します。相手のリストを、 'opponent = int(相手[0]) 'のステップでただ整数に再宣言しています。だからリストとして戻すことはできません。 – lpsandaruwan

答えて

3

相手のあなたのリストがopponentと呼ばれ、後に自分のコードで、あなたが実行します。

opponent = int(opponent[0]) 

以前opponentリストを上書きし、今opponent名ではなく整数を指し

あなたは再び同じことを行う

次の時間:

opponent = int(opponent[0]) 

あなたはINTEの[0]インデックスにアクセスしようとしていますgerは、整数がインデックスに登録されないので、明らかに動作しません。

解決策: 2つの変数に異なる名前を使用するだけです。私の代わりにリストopponentsを呼びたい:彼らはすでに、リスト内の整数だから、あなたがint()を必要としないこと

opponents = [1, 1, 1, 1, 1] 
opponent = opponents[0] 

注意してください。あなただけではなく、整数0

0

の文字列'0'だった場合、たとえば、私はそこに何が起こっているかわからないが、私はのでindexErrorがある疑いがある、あなたは別のタイプに変換したい場合はint()を使用する必要があります同じopponent変数を割り当ててリストから要素を選択するですopponentです。

あなたは2回目の反復、変数opponentのため、このコードスニペットはもうリストない実行している場合は、多分それは、エラーの理由です。値を新しい変数に代入してみてください。

opponent = [1, 1, 1, 1, 1, 1] 

## Code block 
opponent = int(opponent[0]) # Now opponent is not a list, just a number 
if wongames.count(opponent) == 2: 
    # do something 

コードブロックが2回目に実行されている場合、エラーが発生します。この情報がお役に立てば幸い

opponent = [1, 1, 1, 1, 1, 1] 
first_opponent = int(opponent[0]) 
if wongames.count(first_opponent) == 2: 
    # do something 

、次のように何かにコードを変更してみてください! :)

関連する問題