Soustraire, À Moins Que Négatif Alors Retourner 0
Je vais préface, c'est uniquement pour satisfaire ma curiosité plutôt que d'avoir besoin de l'aide sur le code du projet. Mais je voulais savoir si quelqu'un sait de fonction (en particulier en python, mais je vais accepter valide d'un concept mathématique) un peu comme valeur absolue, que, étant donné un numéro de retour 0 si négatif ou de retour de ce nombre si positif.
Pseudo-code:
def myFunc(x):
if x > 0:
return x
else:
return 0
Encore une fois, de ne pas poser la question de la complexité, juste de la curiosité. J'ai besoin d'une couple de fois maintenant, et je me demandais si je n'ai vraiment besoin d'écrire ma propre fonction ou si l'on existait déjà. Si il n'y a pas une fonction pour faire cela, est-il possible d'écrire une seule ligne à l'aide d'une expression n'est pas d'évaluer à deux reprises.
c'est à dire
myVar = x-y if x-y>0 else 0
Je serais bien avec une solution comme ça si x-y n'était pas évaluée deux fois. Donc, si quelqu'un y a aucune solution, je l'apprécierais.
Grâce
- Je pense que ce que vous cherchez est
max(0,x)
?
Vous devez vous connecter pour publier un commentaire.
Un sens...
Cela devrait le faire:
Sonne comme un type d'analyse de la question. numpy peut venir à la rescousse!
Si vous avez vos données dans un tableau:
Si je comprends votre question correctement, vous voulez remplacer les valeurs de x où x-y<0 avec des zéros, sinon remplacer par x-y.
NOTE, la solution ci-dessus fonctionne bien pour soustraire un nombre entier à partir d'un tableau ou d'exploitation sur les deux tableau de dimensions égales. Cependant, Daniel solution est plus élégante lorsque vous travaillez sur deux listes de même longueur. Tout dépend de vos besoins (et si vous souhaitez vous aventurer dans le monde de numpy ou pas).