Friday, September 5, 2025
HomeLanguagesPython – Convert dictionary to K sized dictionaries

Python – Convert dictionary to K sized dictionaries

Given a Dictionary, divide dictionary into K sized different dictionaries list.

Input : test_dict = {‘Gfg’ : 1, ‘is’ : 2, ‘best’ : 3, ‘for’ : 4, ‘neveropen’ : 5, ‘CS’ : 6}, K = 3 
Output : [{‘Gfg’: 1, ‘is’: 2, ‘best’: 3}, {‘for’: 4, ‘neveropen’: 5, ‘CS’: 6}] 
Explanation : Divided into size of 3 keys. 

Input : test_dict = {‘Gfg’ : 1, ‘is’ : 2, ‘best’ : 3, ‘for’ : 4}, K = 2 
Output : [{‘Gfg’: 1, ‘is’: 2}, {‘best’: 3, ‘for’: 4}] 
Explanation : Divided into size of 2 keys.

Method 1: Using loop

In this, we iterate for all the keys in dictionary using loop and bifurcate according to size  and append to new list.

Python3




# Python3 code to demonstrate working of
# Convert dictionary to K Keys dictionaries
# Using loop
 
# initializing dictionary
test_dict = {'Gfg' : 1, 'is' : 2, 'best' : 3, 'for' : 4, 'neveropen' : 5, 'CS' : 6}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing K
K = 2
 
res = []
count = 0
flag = 0
indict = dict()
for key in test_dict:
    indict[key] = test_dict[key]       
    count += 1
     
    # checking for K size and avoiding empty dict using flag
    if count % K == 0 and flag:
        res.append(indict)
         
        # reinitializing dictionary
        indict = dict()
        count = 0
    flag = 1
     
 
# printing result
print("The converted list : " + str(res))


Output

The original dictionary is : {'Gfg': 1, 'is': 2, 'best': 3, 'for': 4, 'neveropen': 5, 'CS': 6}
The converted list : [{'Gfg': 1, 'is': 2}, {'best': 3, 'for': 4}, {'neveropen': 5, 'CS': 6}]

Time Complexity: O(n*n), where n is the length of the list test_dict
Auxiliary Space: O(n) additional space of size n is created where n is the number of elements in the res list

Method 2: Using dictionary comprehension

Step-by-step approach:

  • Initialize a dictionary called test_dict with key-value pairs.
  • Print the original dictionary using the print() function.
  • Set the value of K to the desired number of keys per dictionary.
  • Use dictionary comprehension to create a list of dictionaries. Inside the comprehension, iterate over the items of test_dict and use the modulo operator to group them into sub-dictionaries of size K. The dict() constructor is used to create each sub-dictionary.
  • Print the resulting list of dictionaries using the print() function.

Below is the implementation of the above approach:

Python3




# Python3 code to demonstrate working of
# Convert dictionary to K Keys dictionaries
# Using dictionary comprehension
 
# initializing dictionary
test_dict = {'Gfg' : 1, 'is' : 2, 'best' : 3, 'for' : 4, 'neveropen' : 5, 'CS' : 6}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing K
K = 2
 
# using dictionary comprehension to create list of sub-dictionaries
res = [dict(list(test_dict.items())[i:i+K]) for i in range(0, len(test_dict), K)]
 
# printing result
print("The converted list : " + str(res))


Output

The original dictionary is : {'Gfg': 1, 'is': 2, 'best': 3, 'for': 4, 'neveropen': 5, 'CS': 6}
The converted list : [{'Gfg': 1, 'is': 2}, {'best': 3, 'for': 4}, {'neveropen': 5, 'CS': 6}]

Time complexity: O(N), where N is the number of key-value pairs in the original dictionary.
Auxiliary space: O(N/K), where N is the number of key-value pairs in the original dictionary and K is the size of each sub-dictionary. 

Method 3:  Using the iter function and the dict constructor. 

Step-by-step approach:

  • Initialize an empty list to store the sub-dictionaries.
  • Get an iterator of the original dictionary using the iter function.
  • In each iteration, use the dict constructor to create a sub-dictionary from the next K items in the iterator, where K is the desired number of keys in each sub-dictionary.
  • Append the sub-dictionary to the list of sub-dictionaries.
  • Return the list of sub-dictionaries.

Below is the implementation of the above approach:

Python3




# Python3 code to demonstrate working of
# Convert dictionary to K Keys dictionaries
# Using iter function and dict constructor
import itertools
 
# initializing dictionary
test_dict = {'Gfg': 1, 'is': 2, 'best': 3, 'for': 4, 'neveropen': 5, 'CS': 6}
 
# printing original dictionary
print("The original dictionary is : " + str(test_dict))
 
# initializing K
K = 2
 
# using iter function and dict constructor to create list of sub-dictionaries
it = iter(test_dict.items())
res = []
while True:
    sub_dict = dict(itertools.islice(it, K))
    if not sub_dict:
        break
    res.append(sub_dict)
 
# printing result
print("The converted list : " + str(res))


Output

The original dictionary is : {'Gfg': 1, 'is': 2, 'best': 3, 'for': 4, 'neveropen': 5, 'CS': 6}
The converted list : [{'Gfg': 1, 'is': 2}, {'best': 3, 'for': 4}, {'neveropen': 5, 'CS': 6}]

Time complexity: O(n), where n is the number of items in the original dictionary. 
Auxiliary space: O(n), since we need to store the list of sub-dictionaries.

Dominic
Dominichttp://wardslaus.com
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

Most Popular

Dominic
32264 POSTS0 COMMENTS
Milvus
81 POSTS0 COMMENTS
Nango Kala
6634 POSTS0 COMMENTS
Nicole Veronica
11801 POSTS0 COMMENTS
Nokonwaba Nkukhwana
11863 POSTS0 COMMENTS
Shaida Kate Naidoo
6750 POSTS0 COMMENTS
Ted Musemwa
7025 POSTS0 COMMENTS
Thapelo Manthata
6701 POSTS0 COMMENTS
Umr Jansen
6718 POSTS0 COMMENTS