fork(1) download
  1. import sys
  2. from collections import OrderedDict
  3.  
  4. sep = '\t' # Separador utilizado (default é tabulação)
  5.  
  6. # Lê o cabeçalho com os nomes das colunas
  7. header = next(sys.stdin).split(sep)
  8.  
  9. # Cria um dicionário ordenado com uma lista para cada coluna da tabela
  10. data = OrderedDict()
  11. for h in header:
  12. data[h.strip()] = []
  13.  
  14. # Lê os dados das linhas (assumindo mesma ordem e quantidade das colunas
  15. # no cabeçalho)
  16. rows = 0
  17. for l in sys.stdin:
  18. rows += 1
  19. line = l.split(sep)
  20. for i, k in enumerate(data.keys()):
  21. data[k].append(line[i])
  22.  
  23. # Encontra os tamanhos ideiais de cada coluna
  24. sizes = {}
  25. for k, v in data.items():
  26. sizes[k] = max(len(max(v, key=len)), len(k))
  27.  
  28. # Gera a tabela com os dados
  29. header = ''
  30. for k in data.keys():
  31. header += '<kbd>**<code>{}</code>**</kbd>'.format(k.center(sizes[k]))
  32. print('{}<br/>'.format(header))
  33.  
  34. for l in range(rows):
  35. line = ''
  36. for k, v in data.items():
  37. line += '<kbd><code>{}</code></kbd>'.format(v[l].rjust(sizes[k]))
  38. print('{}<br/>'.format(line))
Success #stdin #stdout 0s 10248KB
stdin
Comprimento da Sépala	Largura da Sépala	Comprimento da Pétala	 Largura da Pétala
5,1	3,5	1,4	0,2
4,9	3,0	1,4	0,2
4,7	3,2	1,3	0,2
4,6	3,1	1,5	0,2
7,0	3,2	4,7	1,4
6,4	3,2	4,5	1,5
6,9	3,1	4,9	1,5
5,5	2,3	4,0	1,3
6,3	3,3	6,0	2,5
5,8	2,7	5,1	1,9
7,1	3,0	5,9	2,1
stdout
<kbd>**<code>Comprimento da Sépala</code>**</kbd><kbd>**<code>Largura da Sépala</code>**</kbd><kbd>**<code>Comprimento da Pétala</code>**</kbd><kbd>**<code>Largura da Pétala</code>**</kbd><br/>
<kbd><code>                  5,1</code></kbd><kbd><code>              3,5</code></kbd><kbd><code>                  1,4</code></kbd><kbd><code>             0,2
</code></kbd><br/>
<kbd><code>                  4,9</code></kbd><kbd><code>              3,0</code></kbd><kbd><code>                  1,4</code></kbd><kbd><code>             0,2
</code></kbd><br/>
<kbd><code>                  4,7</code></kbd><kbd><code>              3,2</code></kbd><kbd><code>                  1,3</code></kbd><kbd><code>             0,2
</code></kbd><br/>
<kbd><code>                  4,6</code></kbd><kbd><code>              3,1</code></kbd><kbd><code>                  1,5</code></kbd><kbd><code>             0,2
</code></kbd><br/>
<kbd><code>                  7,0</code></kbd><kbd><code>              3,2</code></kbd><kbd><code>                  4,7</code></kbd><kbd><code>             1,4
</code></kbd><br/>
<kbd><code>                  6,4</code></kbd><kbd><code>              3,2</code></kbd><kbd><code>                  4,5</code></kbd><kbd><code>             1,5
</code></kbd><br/>
<kbd><code>                  6,9</code></kbd><kbd><code>              3,1</code></kbd><kbd><code>                  4,9</code></kbd><kbd><code>             1,5
</code></kbd><br/>
<kbd><code>                  5,5</code></kbd><kbd><code>              2,3</code></kbd><kbd><code>                  4,0</code></kbd><kbd><code>             1,3
</code></kbd><br/>
<kbd><code>                  6,3</code></kbd><kbd><code>              3,3</code></kbd><kbd><code>                  6,0</code></kbd><kbd><code>             2,5
</code></kbd><br/>
<kbd><code>                  5,8</code></kbd><kbd><code>              2,7</code></kbd><kbd><code>                  5,1</code></kbd><kbd><code>             1,9
</code></kbd><br/>
<kbd><code>                  7,1</code></kbd><kbd><code>              3,0</code></kbd><kbd><code>                  5,9</code></kbd><kbd><code>              2,1</code></kbd><br/>