2017-03-22 4 views
2
mylist = [1, 2, 3, 4, 5, 6, 7, 9, 10] 
mynumber = 8 

mynumberに最も近いリストの番号を探したいと思います。それを可能にする関数をどのように書くことができますか?整数リストに最も近い値を見つける関数を書くにはどうすればいいですか?

私はまだ初心者ですから、ループとifの文章ではどうすればいいですか?

+0

は同じ距離にあります。あなたはどれが欲しいですか? – Lafexlos

+0

自分のコードを試しましたか? –

+0

私は7と9の両方を保存したい –

答えて

0

リストを反復して、最寄りの最小値が欲しい考慮現在最も近い数

def takeClosest(myList, myNumber): 
    closest = myList[0] 
    for i in range(1, len(myList)): 
    if abs(i - myNumber) < closest: 
     closest = i 
    return closest 
8

を比較します。あなたはまた、分の機能を試すことができます。

min(myList, key=lambda x:abs(x-myNumber)) 

更新:

また、これで行くことができます:あなたのケース7と9の両方で

mylist = [1, 2, 3, 4, 5, 6, 7, 9, 10] 
mynumber = int(raw_input("enter num : ")) 

def closest(list, Number): 
    temp = [] 
    for i in list: 
     temp.append(abs(Number-i)) 

    return temp.index(min(temp)) 

a = closest(mylist, mynumber) 
print "index is : ",a 
print "Closet value is : ",mylist[a] 
関連する問題