Heim > Backend-Entwicklung > Python-Tutorial > Wie finde ich die Zahl in einer Liste, die einem bestimmten Wert am nächsten kommt?

Wie finde ich die Zahl in einer Liste, die einem bestimmten Wert am nächsten kommt?

Barbara Streisand
Freigeben: 2024-11-11 06:24:02
Original
784 Leute haben es durchsucht

How to Find the Closest Number in a List to a Given Value?

Finden der Zahl in einer Liste, die einem gegebenen Wert am nächsten kommt

Anhand einer Liste mit ganzen Zahlen müssen Sie möglicherweise bestimmen, welche Zahl am nächsten kommt auf einen bestimmten Wert. Diese Aufgabe kann mit den folgenden Methoden effizient gelöst werden:

Unsortierte Liste:

Wenn die Eingabeliste unsortiert ist, können Sie die integrierte Funktion min() verwenden mit einem Schlüsselargument. Dadurch können Sie das Element mit der minimalen absoluten Differenz vom Zielwert finden.

>>> myList = [4, 1, 88, 44, 3]
>>> myNumber = 5
>>> min(myList, key=lambda x: abs(x - myNumber))
4
Nach dem Login kopieren

Diese Methode benötigt O(n) Zeit, da sie die gesamte Liste durchläuft.

Sortierte Liste:

Wenn die Liste bereits sortiert ist oder Sie bereit sind, sie einmal zu sortieren, können Sie alternativ die verwenden Halbierungsmethode. Diese Technik verwendet eine binäre Suche, um den Einfügepunkt des Zielwerts zu lokalisieren und so effektiv das nächstgelegene Element in O(log n)-Zeit zu finden. Hier ist eine Beispielimplementierung mit dem Bisect-Modul von Python:

>>> from bisect import bisect_left
>>> myList = sorted([4, 1, 88, 44, 3])
>>> myNumber = 5
>>> bisect_left(myList, myNumber)
2
>>> myList[2]
4
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie finde ich die Zahl in einer Liste, die einem bestimmten Wert am nächsten kommt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage