2016-05-10 14 views
0

リスト内で自分が選んだ整数(x)のインデックスを私に与えるプログラムを書いた。また、指定された整数がリストにないときは、プログラムに出力-1(またはNone)を与えます。リスト内の指定された数字のインデックスを見つけるpython3

list = [7,13,6,1] 
x = 5 
for i,j in enumerate(list): 
    if j==x: 
      print(i) 
    else: 
      print(-1) 

ただし、上記の例のようにこれを使用すると、出力は

-1 
-1 
-1 
-1 

です。ここでは-1だけが必要です。何かご意見は? 更新 それが今私にそれがリストに

+0

あなたは 'list.index'を使用していない理由は? – timgeb

+0

@timgeb番号がリストにない場合、私の選択の出力を私に与えることができないと思ったからですか? – Whizkid95

+0

'list.find'を使用します – zondo

答えて

1

見つけxに等しいすべての数字のインデックスを、与えるのに対し、私はまた、プログラムは私に最初に見つかった整数のインデックスのみを与えたいですelse句は、ループを実行するたびに実行されます。ループを中止すると、forループがbreakではない場合にのみ実行され、一致するものが見つかった場合はbreakになります。

for i,j in enumerate(list): 
    if j==x: 
     print(i) 
     break 
else: 
    print(-1) 
3

0を使用することができますそうでない場合は、それが存在する場合、最初のインデックス値を返し、は、とValueErrorを発生させ、そしてtryからexcept句は、エラーを処理するために:

l = [7,13,6,1] 
x = 5 

try: 
    print(l.index(x)) 
except ValueError: 
    print(-1) 
関連する問題