Clampage des valeurs dans une plage en Python
Lorsque vous travaillez avec des données numériques, il est souvent nécessaire de s'assurer que les valeurs restent dans une plage spécifique. Bien que les vérifications conditionnelles explicites soient une méthode courante, elles peuvent devenir verbeuses et lourdes. Heureusement, Python fournit des solutions plus concises et élégantes pour cette tâche.
Une façon de limiter les valeurs consiste à utiliser les fonctions intégrées max() et min(). Ces fonctions prennent plusieurs arguments et renvoient respectivement la valeur la plus grande ou la plus petite. En chaînant ces fonctions, vous pouvez imposer une limite inférieure et supérieure sur une valeur :
new_index = max(0, min(new_index, len(mylist)-1))
Cette expression calcule new_index comme le maximum de 0 et le minimum de new_index et len(mylist)-1. Cela bloque efficacement new_index dans les limites de la liste.
Par exemple, si new_index est -1, il sera limité à 0, qui est la limite inférieure. Si new_index vaut 10 et len(mylist) vaut 5, il sera limité à 4, qui est la limite supérieure moins un.
Vous pouvez également utiliser les fonctions max() et min() avec des expressions conditionnelles ternaires. pour une compacité encore plus grande, mais la lisibilité peut en souffrir :
new_index = 0 if new_index Cette expression utilise l'opérateur inférieur à (
N'oubliez pas que la clarté et la lisibilité doivent avoir la priorité sur une extrême brièveté. L'ajout d'un commentaire concis à côté du code peut aider les autres à comprendre l'intention derrière la logique de verrouillage :
# Clamp new_index within the bounds of the list
new_index = max(0, min(new_index, len(mylist)-1))
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3