リスト内の指定された値に最も近い数値を見つける
整数のリストが与えられた場合、どの数値が最も近いかを判断する必要がある場合があります。指定された値に。このタスクは、次のメソッドを使用して効率的に取り組むことができます:
未ソート リスト:
入力リストがソートされていない場合は、組み込みの min() 関数を利用できます。キー引数を使用して。これにより、ターゲット値との絶対差が最小の要素を見つけることができます。
>>> myList = [4, 1, 88, 44, 3] >>> myNumber = 5 >>> min(myList, key=lambda x: abs(x - myNumber)) 4
このメソッドはリスト全体を反復処理するため、O(n) 時間かかります。
並べ替えられたリスト:
または、リストがすでに並べ替えられている場合、または一度並べ替えたい場合は、二分法を採用することができます。この手法では、二分検索を使用してターゲット値の挿入ポイントを特定し、O(log n) 時間で最も近い要素を効果的に見つけます。以下は、Python の bisect モジュールを使用した実装例です:
>>> from bisect import bisect_left >>> myList = sorted([4, 1, 88, 44, 3]) >>> myNumber = 5 >>> bisect_left(myList, myNumber) 2 >>> myList[2] 4
以上がリスト内の指定された値に最も近い数値を見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。