How to split a dictionary into chunks of size N in Python

2 Answers

0 votes
import itertools

def split_dict(d, n):
    it = iter(d.items())
    while True:
        chunk = dict(list(itertools.islice(it, n)))
        if not chunk:
            break
        yield chunk


data = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9}

for part in split_dict(data, 4):
    print(part)


 
'''
run:
 
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
{'e': 5, 'f': 6, 'g': 7, 'h': 8}
{'i': 9}
 
'''

 



answered Feb 18 by avibootz
0 votes
def split_dict(d, n):
    items = list(d.items())
    return [dict(items[i:i + n]) for i in range(0, len(items), n)]


data = {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6, 'g': 7, 'h': 8, 'i': 9}

for part in split_dict(data, 4):
    print(part)


 
'''
run:
 
{'a': 1, 'b': 2, 'c': 3, 'd': 4}
{'e': 5, 'f': 6, 'g': 7, 'h': 8}
{'i': 9}

'''

 



answered Feb 18 by avibootz

Related questions

1 answer 226 views
5 answers 649 views
1 answer 239 views
9 answers 1,443 views
...