Use for loop with the format to print dictionary as a table in Python. Or you can use zip format for the same.
Example print a dictionary as table in Python
Simple example code.
Using for loop with formate {}
dict1 = {1: ["John", 21, 'CS'],
2: ["Tim", 20, 'EE'],
3: ["Steve", 21, 'Civil'],
}
# Print the names of the columns.
print("{:<10} {:<10} {:<10}".format('NAME', 'AGE', 'COURSE'))
# print each data item.
for key, value in dict1.items():
name, age, course = value
print("{:<10} {:<10} {:<10}".format(name, age, course))
Output:
Using zip() function
The input dictionary formate has changed for this example.
dict1 = {'NAME': ['John', 'Tim', 'Steve'],
'AGE': [21, 20, 21],
'COURSE': ['Data Structures', 'Machine Learning', 'OOPS with Java']}
for each_row in zip(*([i] + (j)
for i, j in dict1.items())):
print(*each_row, " ")
Output:
NAME AGE COURSE
John 21 Data Structures
Tim 20 Machine Learning
Steve 21 OOPS with Java
OR you can use the tabulate
library. If you don’t have it installed, you can install it using pip
:
pip install tabulate
Here’s an example of how to print a dictionary as a table:
from tabulate import tabulate
# Sample dictionary
data = {
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 22],
"City": ["New York", "Los Angeles", "Chicago"]
}
# Convert the dictionary to a list of lists (table format)
table_data = []
for key, values in data.items():
table_data.append([key] + values)
# Print the table
print(tabulate(table_data, headers="firstrow", tablefmt="grid"))
Comment if you have any doubts or suggestions on this Python print dictionary topic.
Note: IDE: PyCharm 2021.3.3 (Community Edition)
Windows 10
Python 3.10.1
All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.