better way to write this function
Paul Hankin
paul.hankin at gmail.com
Mon Nov 26 14:08:46 EST 2007
On Nov 26, 7:42 am, Kelie <kf9... at gmail.com> wrote:
> Hello,
>
> This function does I what I want. But I'm wondering if there is an
> easier/better way. To be honest, I don't have a good understanding of
> what "pythonic" means yet.
>
> def divide_list(lst, n):
> """Divide a list into a number of lists, each with n items. Extra
> items are
> ignored, if any."""
> cnt = len(lst) / n
> rv = [[None for i in range(n)] for i in range(cnt)]
> for i in range(cnt):
> for j in range(n):
> rv[i][j] = lst[i * n + j]
> return rv
>
> Thanks!
Here's a terrible way to do it:
def divide_list(lst, n):
return zip(*[lst[i::n] for i in range(n)])
[It produces a list of tuples rather than a list of lists, but it
usually won't matter].
--
Paul Hankin
More information about the Python-list
mailing list