Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #41987
| From | Peter Otten <__peter__@web.de> |
|---|---|
| Subject | Re: Splitting a list into even size chunks in python? |
| Date | 2013-03-27 09:27 +0100 |
| Organization | None |
| References | <abcd1234abc123ab12a0000000208000020000001052@gmail.com> |
| Newsgroups | comp.lang.python |
| Message-ID | <mailman.3796.1364372856.2939.python-list@python.org> (permalink) |
Norah Jones wrote: > I have a list of arbitrary length, and I need to split it up into equal > size chunks. There are some obvious ways to do this, like keeping a > counter and two lists, and when the second list fills up, add it to the > first list and empty the second list for the next round of data, but this > is potentially extremely expensive. > > I was wondering if anyone had a good solution to this for lists of any > length > > This should work: > > l = range(1, 1000) > print chunks(l, 10) -> [ [ 1..10 ], [ 11..20 ], .., [ 991..999 ] ] > > I was looking for something useful in itertools but I couldn't find > anything obviously useful. Look again, for the grouper() recipe. For lists you can also use slicing: >>> items ['a', 'b', 'c', 'd', 'e', 'f', 'g'] >>> n = 3 >>> [items[start:start+n] for start in range(0, len(items), n)] [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]
Back to comp.lang.python | Previous | Next — Next in thread | Find similar | Unroll thread
Re: Splitting a list into even size chunks in python? Peter Otten <__peter__@web.de> - 2013-03-27 09:27 +0100
Re: Splitting a list into even size chunks in python? Roy Smith <roy@panix.com> - 2013-03-27 08:51 -0400
Re: Splitting a list into even size chunks in python? Chris Angelico <rosuav@gmail.com> - 2013-03-27 23:59 +1100
Re: Splitting a list into even size chunks in python? Roy Smith <roy@panix.com> - 2013-03-27 19:42 -0400
Re: Splitting a list into even size chunks in python? Chris Angelico <rosuav@gmail.com> - 2013-03-28 11:15 +1100
csiph-web