[EMAIL PROTECTED] wrote: > I'm a bit baffled. Here is a bit of fairly straightforward code: > > def _chunkify( l, chunkSize, _curList = list() ): ... > _chunkify simply breaks a sequence into a sequence of smaller lists of > size <= chunkSize. The first call works fine, but if I call it > multiple times, weirdness happens. > > Considering the default value of _curList, these statements should be > identical. Any pointers? Did I miss something in the python reference > manual? (running 2.4.3, fyi)
You've already got the real answer. How about considering iterators, since I presume you are chunking to help some kind of processing.: def chunky(src, size): '''Produce a (possibly long source) in size-chunks or less.''' assert size > 0 for start in range(0, len(src), size): yield src[start : start + size] def chunkify(alist, size, _curList=None): if _curList is None: return list(chunky(alist, size)) _curList.extend(list(chunky(alist, size))) return _curList I suspect most often you can use chunky directly: for chunk in chunky(somedata, size): ... for size in range(1, 30): print size, list(chunky('abcdefghijklmnopqrstuvwxyz', size)) --Scott David Daniels [EMAIL PROTECTED] -- http://mail.python.org/mailman/listinfo/python-list