In this article, we will learn about different ways to print all items (key-value pairs) of a dictionary.

Table of Contents

Print all pairs of dictionary using for loop and items()

The items() function of dictionary class returns an iterable sequence of all key-value pairs of dictionary. We can use a for loop to iterate over this sequence of pairs and print each of them one by one. For example,

# Dictionary of string and int
word_freq = {
    'Hello' : 56,
    "at"    : 23,
    'test'  : 43,
    'This'  : 78,
    'Why'   : 11
}

# Print all key-value pairs of a dictionary
for key, value in word_freq.items():
    print(key, '::', value)

Output:

Hello :: 56
at :: 23
test :: 43
This :: 78
Why :: 11

It printed all the key-value items of dictionary.

Print all pairs of dictionary by iterating over keys only

We can also iterate over all keys of the dictionary using a for loop and during iteration select value of each key using [] operator, then print the pair. For example,

# Dictionary of string and int
word_freq = {
    'Hello' : 56,
    "at"    : 23,
    'test'  : 43,
    'This'  : 78,
    'Why'   : 11
}

# Print all key-value pairs of a dictionary
for key in word_freq:
    print(key, '::', word_freq[key])

Output:

Hello :: 56
at :: 23
test :: 43
This :: 78
Why :: 11

It print all the key-value items of dictionary. But it is less effective solution than the previous one.

Print all pairs of dictionary in reverse order

We can create a list of all key-value pairs of dictionary by passing the iterable sequence returned by items() function to the list() function. Then we can reverse the contents of pairs and print them. For example,

# Dictionary of string and int
word_freq = {
    'Hello' : 56,
    "at"    : 23,
    'test'  : 43,
    'This'  : 78,
    'Why'   : 11
}

# Get all key-value pairs of dictionary as list
all_pairs = list(word_freq.items())

# Iterate over the reversed list of key-value pairs 
# and print them one by one
for key, value in reversed(all_pairs):
    print(key, '::', value)

Output:

Why :: 11
This :: 78
test :: 43
at :: 23
Hello :: 56

It print all the key-value items of dictionary in reverse order. We created a list because the iterable sequence dict_items, returned by the items() function is non reversible.

Print all key-value pairs of a nested dictionary

Suppose we have a dictionary that contains other dictionaries as values. To print all key-value pairs of this dictionary we have created a function, that will recursively go inside the nested dictionary and print all key-value pairs. For example,

# A Nested dictionary i.e. dictionaty of dictionaries
students = {
            'ID 1':    {'Name': 'Shaun', 'Age': 35, 'City': 'Delhi'},
            'ID 2':    {'Name': 'Ritika', 'Age': 31, 'City': 'Mumbai'},
            'ID 3':    {'Name': 'Smriti', 'Age': 33, 'City': 'Sydney'},
            'ID 4':    {'Name': 'Jacob', 'Age': 23, 'City': {'perm': 'Tokyo', 'current': 'London'}},
            }

def print_all_pairs(dict_obj):
    ''' This function print all key-value pairs
        of a nested dictionary i.e. dict of dicts
    '''
    # Iterate over all key-value pairs of a dict
    for key, value in dict_obj.items():
        # If value is of dict type then print 
        # all key-value pairs in the nested dictionary
        if isinstance(value, dict):
            print_all_pairs(value)
        else:
            print(key, '::', value)


print_all_pairs(students)

Output:

Name :: Shaun
Age :: 35
City :: Delhi
Name :: Ritika
Age :: 31
City :: Mumbai
Name :: Smriti
Age :: 33
City :: Sydney
Name :: Jacob
Age :: 23
perm :: Tokyo
current :: London

Summary:

We learned about different ways to print all key-value pairs of a dictionary.