„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie klemmt man Werte innerhalb eines Bereichs präzise in Python?

Wie klemmt man Werte innerhalb eines Bereichs präzise in Python?

Veröffentlicht am 08.11.2024
Durchsuche:914

How to Clamp Values within a Range Concisely in Python?

Werte innerhalb eines Bereichs in Python eingrenzen

Bei der Arbeit mit numerischen Daten ist es oft notwendig, sicherzustellen, dass Werte innerhalb eines bestimmten Bereichs bleiben. Obwohl explizite bedingte Prüfungen eine gängige Methode sind, können sie ausführlich und unhandlich werden. Glücklicherweise bietet Python präzisere und elegantere Lösungen für diese Aufgabe.

Eine Möglichkeit, Werte zu begrenzen, ist die Verwendung der integrierten Funktionen max() und min(). Diese Funktionen akzeptieren mehrere Argumente und geben jeweils den größten bzw. kleinsten Wert zurück. Durch Verketten dieser Funktionen können Sie eine Unter- und Obergrenze für einen Wert erzwingen:

new_index = max(0, min(new_index, len(mylist)-1))

Dieser Ausdruck berechnet new_index als Maximum von 0 und Minimum von new_index und len(mylist)-1. Dies klemmt new_index effektiv innerhalb der Grenzen der Liste.

Wenn beispielsweise new_index -1 ist, wird es auf 0 geklemmt, was die untere Grenze darstellt. Wenn new_index 10 und len(mylist) 5 ist, wird er auf 4 begrenzt, was der oberen Grenze minus eins entspricht.

Sie können die Funktionen max() und min() auch mit ternären bedingten Ausdrücken verwenden für noch mehr Kompaktheit, aber die Lesbarkeit kann darunter leiden:

new_index = 0 if new_index 

Dieser Ausdruck verwendet den Kleiner-als-Operator (

Denken Sie daran, dass Klarheit und Lesbarkeit Vorrang vor extremer Kürze haben sollten. Das Hinzufügen eines prägnanten Kommentars neben dem Code kann anderen helfen, die Absicht hinter der Klemmlogik zu verstehen:

# Clamp new_index within the bounds of the list
new_index = max(0, min(new_index, len(mylist)-1))
Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729158017. Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3