Neste tutorial, aprenderemos como podemos imprimir dados em formato tabular em Python, especialmente listas em Python.

Existem várias maneiras de fazer isso, mas aqui vamos listar apenas um dos métodos mais comumente usados que são mais simples de usar na prática, e estes métodos são:


Usando a função beautifultable para imprimir dados em formato de tabela em Python;

Usando o módulo prettytable para imprimir dados em formato de tabela em Python;

Usando a função tabulate para imprimir dados em formato de tabela em Python.


As listas em Python podem armazenar vários elementos em uma ordem específica. No entanto, quando imprimimos uma lista, pode não ficar claro se estamos trabalhando com dados formatados em linha.

Este tutorial irá apresentar como imprimir dados de uma coleção de lista em formato de tabela.

Dessa forma, os dados, ao serem visualizados, ficarão limpos e organizados, pois tudo está lindamente organizado em linhas e colunas.


Usando o método beautifultable para imprimir listas.


Primeiro devemos instalar a biblioteca beautifultable, e para obter mais informações sobre a biblioteca beautifultable clique aqui. https://pypi.org/project/beautifultable/


pip install beautifultable


Ler dados em um formato tabular é muito mais fácil em comparação com um formato não estruturado, conforme mostrado abaixo:


lista = [(1, 'Joao Futi Mesma', 'joaofutimesma@gmail.com', '7022', 'Voleyball'),

         (2, 'Jose', 'jose@gmail.com', '9877', 'Voleyball'),

         (3, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'),

         (4, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Basketball'),

         (5, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'),

         (6, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'),

         (7, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Basketball'),

         (8, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Voleyball'),

         (9, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Corrida'),

         (10, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'),

         (11, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Basketball'),

         (12, 'Messi', 'messi@gmail.com', '747676', 'Corrida'),

         (13, 'Popo', 'popo@gmail.com', '76766', 'Corrida'),

         (14, 'Popo', 'popo@gmail.com', '76766', 'Corrida'),

         (15, 'testando', 'testando@gmail.com', '7088975', 'Corrida')

         ]



Para imprimir a lista acima em um formato tabular usando o método beautifultable, será:




from beautifultable import BeautifulTable

 

#crie uma variável e passe a lista para esta variável

tabela_b= “ passa a lista aqui ”

 

# cria uma nova variável e passa alguns nomes para ela na forma de uma lista, para servir como o cabeçalho da tabela

tabela_h = ["Id","Nome", "Email", "Tel", "Esporte"]

 

# Agora, crie uma instância de BeautifulTable

tabela = BeautifulTable()

 

 

#Em seguida, passe a lista de cabeçalhos para a instância

tabela.columns.header = tabela_h

 

#Agora vamos inserir os valores na tabela usando o loop for.

for i in tabela_b:

    tabela.rows.append(i)

    

# Agora você pode imprimi-lo e ver os resultados

print(tabela)

 




Para melhor explicação e esclarecimento assista ao vídeo abaixo.


Usando a biblioteca prettytable para imprimir listas.

Primeiro devemos instalar a biblioteca prettytable, e para obter mais informações sobre a biblioteca beautifultable clique aqui. https://pypi.org/project/prettytable/



pip install prettytable



[(1, 'Joao Futi Mesma', 'joaofutimesma@gmail.com', '7022', 'Voleyball'), 

          (2, 'Jose', 'jose@gmail.com', '9877', 'Voleyball'), 

          (3, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'), 

          (4, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Basketball'), 

          (5, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'), 

          (6, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Corrida'), 

          (7, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Voleyball'), 

          (8, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Basketball'), 

          (9, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Corrida'), 

          (10, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'), 

          (11, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Basketball'), 

          (12, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Voleyball'), 

          (13, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Corrida'), 

          (14, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Football'), 

          (15, 'Jose Maria', 'josemaria@gmail.com', '28828', 'Basketball'), 

          (16, 'Messi', 'messi@gmail.com', '747676', 'Corrida'), 

          (17, 'Popo', 'popo@gmail.com', '76766', 'Corrida'), 

          (18, 'Popo', 'popo@gmail.com', '76766', 'Corrida'), 

          (19, 'Popo', 'popo@gmail.com', '76766', 'Basketball'), 

          (20, 'Popo', 'popo@gmail.com', '76766', 'Football'), 

          (21, 'testando', 'testando@gmail.com', '7088975', 'Corrida')

          ]


Para imprimir a lista acima em um formato tabular usando o método prettytable , será:


from prettytable import PrettyTable

 

#crie uma variável e passe a lista para esta variável

tabela_b=“ passa a lista aqui ”

 

# cria uma nova variável e passa alguns nomes para ela na forma de uma lista, para servir como o cabeçalho da tabela

tabela_h = ["Id","Nome", "Email", "Tel", "Esporte"]

 

# Agora, crie uma instância de PrettyTable

tabela = PrettyTable()

 

#Em seguida, passe a lista de cabeçalhos para a instância

tabela.field_names = tabela_h

 

#Agora vamos inserir os valores na tabela

tabela.add_rows(tabela_b)

 

 

# Agora você pode imprimi-lo e ver os resultados

print(tabela.get_string())




Existem mais opções que você pode usar para exibir a tabela usando PrettyTable, e algumas delas estão listadas abaixo:


# --------- Controlar quais dados são exibidos -----------

 

print(tabela.get_string(fields=["Id", "Nome"]))

 

print(tabela.get_string(start=1, end=4))



# -------------- CLASSIFICANDO SUA TABELA POR UM CAMPO ---------------

print(tabela.get_string(sortby="Nome"))