2017-05-23 3 views
0
var=42 

l = [1,2,3,7,3,5,21,8,44,16,13] 

if l.index(5) < l.index(var-20): 
    print ("True") 

else: 
    print ("False") 

値(var)を選択し、リストから最初に来るものを表示するには、var +(たとえば20)またはvar-再び20歳になる可能性があります)。より大きいまたは小さい整数のリストをチェックする方法

上記のコードで問題になっているのは、値がリストに存在しないと、私にエラーが表示されるということです。

+1

リストに 'var + x'も' var-x'も表示されない場合はどうなりますか? –

+0

@DanielTJonesしたがって、_ **範囲** _ 'var-x'内の値を' var + x'にしたいですか? –

答えて

2

明らかに数字を見つけるには、別の方法が必要です。代わりに、の番号で検索してみましょう。 20の高(あなたが使ったもの)と17の低(差のために)のように、スパンの数を変えてみましょう。

var = 42 
target = [1,2,3,7,3,5,21,8,44,16,13] 

lo_diff = 20 
hi_diff = 17 

lo_num = var - lo_diff 
hi_num = var + hi_diff 

# Check to see which of the two is in the list: 

lo_index = target.index(lo_num) if lo_num in target else -1 
hi_index = target.index(hi_num) if hi_num in target else -1 

これにより、見つかった値ごとに正確なインデックスがあります。見つからない場合は-1が表示されます。ここから終えることができると思いますか?


使用上の注意

は、ブール値のを信じるに学びます。あなたの出力ブロックは、単一のステートメントでなければなりません:

if l.index(5) < l.index(var-20): 
    print ("True") 
else: 
    print ("False") 

... ...

print(l.index(5) < l.index(var-20)) 

は、単にブール式の値を印刷するように減少します。

+0

これは完璧でした。私も使用メモに注意を払った。そして、今清めているように見える。 –

関連する問題