, myfile - . izip_longest itertools , "0" :
[('1', '1', '1', '1', '2'), ('2', '2', '2', '2', '4'),
('0', '3', '0', '3', '0'), ('0', '0', '0', '4', '0')]
, . :
from itertools import izip_longest
rows = [line.split() for line in myfile]
rows = zip(*izip_longest(*rows, fillvalue="0"))
print "\n".join(" ".join(row) for row in rows)
: (imho elegant) (8.55 usec 7.08 usec), :
rows = [line.split() for line in myfile]
maxlen = max(len(x) for x in rows)
for row in rows:
print " ".join(row + ["0"] * (maxlen - len(row)))
Re:
, , , . .
from itertools import izip_longest
rows = [line.split() for line in myfile]
columns = list(izip_longest(*rows, fillvalue="0"))
column_width = [max(len(num) for num in col) for col in columns]
column_template = "{{{0}:>{1}s}}"
row_template = " ".join(column_template.format(i, n) for
i, n in enumerate(column_width))
print "\n".join(row_template.format(*row) for row in zip(*columns))