fork(6) download
  1. import re
  2. formatmany=lambda f:lambda *s:'\n'.join(f.format(*x) for x in s)
  3.  
  4. my_list = [[12345, 12.345, 12.345, 12.345],
  5. [12340, 12.340, 12.340, 12.340],
  6. [12300, 12.300, 12.300, 12.300],
  7. [12000, 12.000, 12.000, 12.000]]
  8. my_format = formatmany('|{:8d}|{:8.2f}|{:8.3f}|{:8.4f}|')
  9. my_string = my_format(*my_list) # this is the formatted multiline string with trailing zeros
  10.  
  11.  
  12. print(re.sub(r'(?<=\.)([0-9]+?)(0+)(?=\D|$)',lambda m:m.group(1)+' '*len(m.group(2)), my_string))
Success #stdin #stdout 0.01s 8968KB
stdin
Standard input is empty
stdout
|   12345|   12.35|  12.345| 12.345 |
|   12340|   12.34|  12.34 | 12.34  |
|   12300|   12.3 |  12.3  | 12.3   |
|   12000|   12.0 |  12.0  | 12.0   |