[Python-ideas] [Python-Dev] minmax() function returning (minimum, maximum) tuple of a sequence (original) (raw)

Ron Adam rrr at ronadam.com
Fri Oct 15 20:09:17 CEST 2010


On 10/15/2010 12:27 PM, Georg Brandl wrote:

Am 15.10.2010 19:13, schrieb Ron Adam:

[Tal also says] As Guido mentioned, there is never a reason to do max(value) where value is not an iterable.

Well, you can always avoid doing it, but that doesn't mean it wouldn't be nice to have sometimes. Take a look at the following three coroutines that do the same exact thing. Which is easier to read and which would be considered the more Pythonic.

def xmin(*args, **kwds): # Allow min to work with a single non-iterable value. if len(args) == 1 and not hasattr(args[0], "iter"): return min(args, **kwds) else: return min(*args, **kwds) I don't understand this function. Why wouldn't you simply always call return min(args, **kwds) ?

Because it would always interpret a list of values as a single item.

This function looks at args and if its a single value without an "iter" method, it passes it to min as min([value], **kwds) instead of min(value, **kwds).

Another way to do this would be to use a try-except...

 try:
      return min(*args, **kwds)
 except TypeError:
      return min(args, **kwds)

Ron



More information about the Python-ideas mailing list