0

I have a python script which produces this output:

[(22, 8, 40.0), (23, 1, 5.0), (24, 1, 5.0), ('Friday', 2, 10.0), ('Monday', 4, 20.0), ('Thursday', 2, 10.0), ('Tuesday', 1, 5.0), ('Wednesday', 1, 5.0)]

How can I get Python to show me this in a table format with the headings : Value, Count, Percentage

Additionally, I have not managed to get sorting to work. I want it to have the highest percentage value at the top of the list descending order.

My script for the sort was # sort results sorted(rank_values_perc, key=lambda x: x[2], reverse=True)

Matt Lightbourn
  • 597
  • 3
  • 20

1 Answers1

2

Use tabulate:

from tabulate import tabulate

data = [(22, 8, 40.0), (23, 1, 5.0), (24, 1, 5.0), ('Friday', 2, 10.0), ('Monday', 4, 20.0), ('Thursday', 2, 10.0), ('Tuesday', 1, 5.0), ('Wednesday', 1, 5.0)]

header = ['Value', 'Count', 'Percentage']
data = sorted(data, key=lambda x: x[2], reverse=True)
print(tabulate(data, headers=header))

You can refer to this link for more options: Printing Lists as Tabular Data

Kheng
  • 114
  • 6