[Python-ideas] Consider adding clip or clamp function to math
Neil Girdhar
mistersheik at gmail.com
Sat Jul 30 17:57:53 EDT 2016
More information about the Python-ideas mailing list
Sat Jul 30 17:57:53 EDT 2016
- Previous message (by thread): [Python-ideas] Make types.MappingProxyType hashable
- Next message (by thread): [Python-ideas] Consider adding clip or clamp function to math
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
It's common to want to clip (or clamp) a number to a range. This feature is commonly needed for both floating point numbers and integers: http://stackoverflow.com/questions/9775731/clamping-floating-numbers-in-python http://stackoverflow.com/questions/4092528/how-to-clamp-an-integer-to-some-range-in-python There are a few approaches: * use a couple ternary operators (e.g. https://github.com/scipy/scipy/pull/5944/files line 98, which generated a lot of discussion) * use a min/max construction, * call sorted on a list of the three numbers and pick out the first, or * use numpy.clip. Am I right that there is no *obvious* way to do this? If so, I suggest adding math.clip (or math.clamp) to the standard library that has the meaning: def clip(number, lower, upper): return lower if number < lower else upper if number > upper else number This would work for non-numeric types so long as the non-numeric types support comparison. It might also be worth adding assert lower < upper to catch some bugs. Best, Neil -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-ideas/attachments/20160730/9c33ef59/attachment.html>
- Previous message (by thread): [Python-ideas] Make types.MappingProxyType hashable
- Next message (by thread): [Python-ideas] Consider adding clip or clamp function to math
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-ideas mailing list