Printing Lists as Tabular Data in Python


Data manipulation and analysis are crucial aspects of programming, especially when dealing with large datasets. One of the challenges programmers often face is how to present data in a clear and organized format that facilitates comprehension and analysis. Python, being a versatile language, offers various techniques and libraries to print lists as tabular data, allowing for a visually appealing representation of information. Printing lists as tabular data involves arranging the data in rows and columns, resembling a table−like structure. This format makes comparing and understanding the relationships between different data points easier. Whether you are working on a data analysis project, generating reports, or presenting information to stakeholders, being able to print lists as tables in Python is a valuable skill.

In this article, we will explore different methods and libraries available in Python for printing lists as tabular data. We will start with the basics, using the built−in print() function to create simple tables. Then, we will dive into more advanced techniques by leveraging popular libraries such as tabulate and PrettyTable. So make sure to read this article till the end for better understanding.

Using the Built−in print() Function

The simplest way to print a list as a table is by using the built−in print() function. However, this method is suitable only for basic tables with uniform row lengths.

Here is the example you can refer to for that:

data = [
    ['Name', 'Age', 'Country'],
    ['John Doe', '25', 'USA'],
    ['Jane Smith', '32', 'Canada'],
    ['Mark Johnson', '45', 'UK']
]

for row in data:
    print('\t'.join(row))

Output

Name         Age    Country
John Doe     25     USA
Jane Smith   32     Canada
Mark Johnson 45     UK

In the above code snippet, we use the join() method to concatenate each row element with a tab character ('\t'). This results in a tab−separated table−like structure when printed.

While this method is quick and straightforward, it needs more flexibility to handle complex table formattings, such as alignment and headers. For more advanced table printing options, we can turn to external libraries.

Using the tabulate Library

The tabulate library is a strong choice for more complex table formatting. It offers a variety of formatting choices, including the ability to add headers, modify alignment, and select the table style (e.g., "plain," "simple," "grid," or "fancy_grid").

To use tabulate, we need to install it first using the following command:

pip install tabulate

Success output

Collecting tabulate
  Downloading tabulate-0.8.9-py3-none-any.whl (25 kB)
Installing collected packages: tabulate
Successfully installed tabulate-0.8.9

Once installed, we can use the library to output lists as tables. Let's update our earlier example to add the tabulate library.

Here is the code open the terminal and start executing:

Example

from tabulate import tabulate

data = [
    ['Name', 'Age', 'Country'],
    ['John Doe', '25', 'USA'],
    ['Jane Smith', '32', 'Canada'],
    ['Mark Johnson', '45', 'UK']
]

print(tabulate(data, headers='firstrow', tablefmt='fancy_grid'))

Output

╒═════════════╤═════╤═════════╕
│ Name        │ Age │ Country │
╞═════════════╪═════╪═════════╡
│ John Doe    │ 25  │ USA     │
├─────────────┼─────┼─────────┤
│ Jane Smith  │ 32  │ Canada  │
├─────────────┼─────┼─────────┤
│ Mark Johnson│ 45  │ UK      │
╘═════════════╧═════╧═════════╛

We import the tabulate function from the tabulate library in the above code snippet. The tabulate() process takes the data list as the first argument. We set the headers parameter to 'firstrow' to indicate that the first row contains the headers. The tablefmt parameter specifies the desired table format ('fancy_grid' in this example).

The tabulate library offers various table formats to choose from, depending on the desired visual appearance of the table. For instance, the 'plain' format provides a simple table without any additional decoration, while the 'grid' format adds vertical and horizontal lines to separate the cells. The flexibility of the library allows us to present data in a way that best suits our needs.

Using PrettyTable

PrettyTable is another popular library for producing lists as tables. It provides a simple and intuitive method for creating and customizing tables.

To install PrettyTable, use the following command:

pip install prettytable

Success output

Collecting prettytable
  Downloading prettytable-2.2.1-py3-none-any.whl (22 kB)
Requirement already satisfied: setuptools in /usr/local/lib/python3.9/site-packages (from prettytable) (57.4.0)
Installing collected packages: prettytable
Successfully installed prettytable-2.2.1

Once installed, we can utilize the library to print lists as tables. Let's modify our previous example to include the PrettyTable library.

Example

Refer the below code for the same:

from prettytable import PrettyTable

table = PrettyTable()
table.field_names = ['Name', 'Age', 'Country']
table.add_row(['John Doe', '25', 'USA'])
table.add_row(['Jane Smith', '32', 'Canada'])
table.add_row(['Mark Johnson', '45', 'UK'])

print(table)

Output

+--------------+-----+---------+
|     Name     | Age | Country |
+--------------+-----+---------+
|   John Doe   |  25 |   USA   |
|  Jane Smith  |  32 |  Canada |
| Mark Johnson |  45 |    UK   |
+--------------+-----+---------+

We import the PrettyTable class from the prettytable package in the last code. We build a PrettyTable object and use the field_names attribute to set the field names. The add_row() method is then used to add rows to the table. Finally, we print the table object, which formats it automatically in a tabular format.

Utilizing PrettyTable has various benefits, including the ability to alter the table's appearance. Before printing, you can even sort the data while specifying the column alignment and altering the border design and footer row additions. This makes it possible to show the data in a more aesthetically appealing and instructive way.

Conclusion

In conclusion, printing lists as tabular data in Python is a valuable skill for data manipulation and presentation. Throughout this article, we explored various techniques and libraries such as tabulate and PrettyTable that allow us to achieve this task effectively. These tools enable us to transform raw data into structured and visually appealing tables, making it easier to comprehend and communicate our data−driven insights. Whether we choose the simplicity of the built−in print() function or the versatility of external libraries, Python provides us with the necessary resources to present our data in a structured and organized manner. By mastering these techniques, we can enhance our data analysis and presentation skills, effectively conveying information to stakeholders and making our work more impactful.

Updated on: 25-Jul-2023

3K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements