Paging python lists in slices of 4 items

Oli picture Oli · Oct 16, 2010 · Viewed 12.6k times · Source

Possible Duplicate:
How do you split a list into evenly sized chunks in Python?

mylist = [1, 2, 3, 4, 5, 6, 7, 8, 9]

I need to pass blocks of these to a third party API that can only deal with 4 items at a time. I could do one at a time but it's a HTTP request and process for each go so I'd prefer to do it in the lowest possible number of queries.

What I'd like to do is chunk the list into blocks of four and submit each sub-block.

So from the above list, I'd expect:

[[1, 2, 3, 4], [5, 6, 7, 8], [9]]

Answer

RichieHindle picture RichieHindle · Oct 16, 2010
mylist = [1, 2, 3, 4, 5, 6, 7, 8, 9] 
print [mylist[i:i+4] for i in range(0, len(mylist), 4)]
# Prints [[1, 2, 3, 4], [5, 6, 7, 8], [9]]