Paul Rubin wrote: > It chops up the iterable into a bunch of smaller ones, but the total > size ends up the same. "Telescope", "compact", "collapse" etc. make > it sound like the output is going to end up smaller than the input.
Good point... I guess I was thinking in terms of the number of iterators being returned being smaller than the length of the input, and ordered relative to the input - not about the fact that the iterators contain all of the objects. > There is also a dirty secret involved <wink>, which is that the > itertools functions (including groupby) are mostly patterned after > similarly named functions in the Haskell Prelude, which do about the > same thing. They are aimed at helping a similar style of programming, > so staying with similar names IMO is a good thing. Ah - those horrible, intolerant Functionalists. I dig ;-). > But that is what groupby does, except its notion of uniqueness is > limited to contiguous runs of elements having the same key. "itertools.groupby_except_the_notion_of_uniqueness_is_limited_to- _contiguous_runs_of_elements_having_the_same_key()" doesn't have much of a ring to it. I guess this gets back to documentation problems, because the help string says nothing about this limitation: ''' class groupby(__builtin__.object) | groupby(iterable[, keyfunc]) -> create an iterator which returns | (key, sub-iterator) grouped by each value of key(value). | ''' "Each" seems to imply uniqueness here. -- http://mail.python.org/mailman/listinfo/python-list