In this article, we will discuss different ways to print all keys of a dictionary. Then we will also cover the scenario, where we need to print all the keys of nested dictionary i.e. dictionary of dictionaries.
Print all keys of a python dictionary using for loop
In Python, the dictionary class provides a function keys(), which returns an iterable sequence of dictionary keys. Using for loop we can iterate over the sequence of keys returned by the function keys() and while iteration we can print each key. For example,
# Dictionary of string and int word_freq = { 'Hello' : 56, "at" : 23, 'test' : 43, 'This' : 78, 'Why' : 11 } # Iterate over all keys of a dictionary # and print them one by one for key in word_freq.keys(): print(key)
Output:
Hello at test This Why
Print all keys of a python dictionary by creating a list of all keys
We can also create a list of keys from the iterable sequence returned by dict.keys() function. Then we print all the items of the list (all keys of the dictionary). For example,
# Dictionary of string and int word_freq = { 'Hello' : 56, "at" : 23, 'test' : 43, 'This' : 78, 'Why' : 11 } # Get all keys of a dictionary as list list_of_keys = list(word_freq.keys()) # Print the list containing all keys of dictionary print(list_of_keys)
Output:
['Hello', 'at', 'test', 'This', 'Why']
Print all keys of a python dictionary by creating a list comprehension
We can also use this list comprehension to iterate over all the keys of dictionary and then print each key one by one. For example,
# Dictionary of string and int word_freq = { 'Hello' : 56, "at" : 23, 'test' : 43, 'This' : 78, 'Why' : 11 } # Iterate over all keys of dictionary # and print them one by one [print(key) for key in word_freq]
Output:
Frequently Asked:
- Python | Add dictionary to dictionary without overwriting
- Python : How to convert a list to dictionary ?
- Python: Get first value in a dictionary
- Python: Check if value exists in list of dictionaries
Hello at test This Why
Print all keys of a nested dictionary in Python – Dictionary of dictionaries
Suppose we have a nested dictionary i.e. a kind of dictionaries which has another dictionary objects as value fields. To iterate over all the keys of a nested dictionary, we can use the recursion.
We have created a function, which yields all keys of the given dictionary. For each key-value pair in dictionary, it checks if the value is of dictionary type or not. If value is of dictionary type, then this function calls itself to access all keys of the nested dictionary and yield them too, one by one. The process goes on and on till all the nested dictionaries are covered. 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 all_keys(dict_obj): ''' This function generates all keys of a nested dictionary. ''' # Iterate over all keys of the dictionary for key , value in dict_obj.items(): yield key # If value is of dictionary type then yield all keys # in that nested dictionary if isinstance(value, dict): for k in all_keys(value): yield k # Iterate over all keys of a nested dictionary # and print them one by one. for key in all_keys(students): print(key)
Output:
ID 1 Name Age City ID 2 Name Age City ID 3 Name Age City ID 4 Name Age City perm current
We iterated over all keys of a nested dictionary and printed them one by one. If you want to get all keys of a nested dictionary as a list, then you can just put the values yielded by the the function all_keys() to a list. For example,
# get all keys of a nested dictionary keys = list(all_keys(students) ) # Print the list containing all keys of the nested dictionary print(keys)
Output:
['ID 1', 'Name', 'Age', 'City', 'ID 2', 'Name', 'Age', 'City', 'ID 3', 'Name', 'Age', 'City', 'ID 4', 'Name', 'Age', 'City', 'perm', 'current']
Summary:
We learned ways to print all keys of a dictionary, including the nested dictionaries.