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))
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