On 01/08/14 09:33, Ben Finney wrote:
I'm being a stickler on this point because “iterate” implies something
quite specific in Python, and this behaviour is not implied by the
purpose of ‘max’.
Instead, think only “finds the largest item in the collection”.
Nope, think the largest in an iterator.
The docs say iterator not collection.
The max function works with generators which are not collections.
Here is an example:
>>> def mycount(first,limit):
... n=first
... while n < limit:
... yield n
... n += 1
...
>>> for x in mycount(1,5):
... print x
...
1
2
3
4
>>> max(mycount(2,5))
4
>>>
You don't need a collection to call max()
though; I would prefer instead that it says “collection”, because
whether the collection is iterable shouldn't matter.
But the docs say it does matter. The specification of max() is what the
docs say, and they say it should be an iterable. I don't know what
happens if you pass a non-iterable collection but the docs do say it
should be iterable and assuming that it might work with a non-iterable
is the mistake...
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
http://www.flickr.com/photos/alangauldphotos
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor