ホームページ > バックエンド開発 > Python チュートリアル > リスト内で指定された値に最も近い数値を見つけるにはどうすればよいでしょうか?

リスト内で指定された値に最も近い数値を見つけるにはどうすればよいでしょうか?

DDD
リリース: 2024-11-09 17:48:02
オリジナル
635 人が閲覧しました

How do you find the closest number in a list to a given value?

リスト内の指定された値に最も近い数値を見つける

整数のリストとターゲット数値が与えられた場合、タスクは、リスト内の数値を見つけることです。ターゲットに最も近いです。この問題は、さまざまなアプローチを使用して解決できます。

最小距離の使用

リスト内の要素の順序が保証されていない場合は、key パラメーターを指定した min() 関数を使用できます。このメソッドは、各要素とターゲットの間の最小距離を見つけて、最小距離を持つ要素を返します。

def takeClosest(myList, myNumber):
    return min(myList, key=lambda x: abs(x - myNumber))
ログイン後にコピー

二分探索 (二分法) を使用する

リストが既知の場合並べ替えると、二分検索を適用して、O(log n) 時間でより効率的に最も近い数値を見つけることができます:

def takeClosest(myList, myNumber):
    low = 0
    high = len(myList) - 1
    while low <= high:
        mid = (low + high) // 2
        if myList[mid] == myNumber:
            return myList[mid]
        elif myList[mid] < myNumber:
            low = mid + 1
        else:
            high = mid - 1
    return min([myList[low], myList[high]], key=lambda x: abs(x - myNumber))
ログイン後にコピー

以上がリスト内で指定された値に最も近い数値を見つけるにはどうすればよいでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート