我们说我有一组数字
list = [(4, 3, 7, 23),(17, 4021, 4, 92)]
我希望以这种方式打印数字,以便输出看起来像这样:
[ 4 | 3 | 7 | 23 ]
[ 17 | 4021 | 4 | 92 ]
数字尽可能居中,并且" |"之间有足够的空间。允许4位数字,两边各有两个空格。
我该怎么做?
谢谢。
答案 0 :(得分:2)
您还可以使用PrettyTable
或texttable
等第三方。使用texttable
的示例:
import texttable
l = [(4, 3, 7, 23),(17, 4021, 4, 92)]
table = texttable.Texttable()
# table.set_chars(["", "|", "", ""])
table.add_rows(l)
print(table.draw())
会产生:
+----+------+---+----+
| 4 | 3 | 7 | 23 |
+====+======+===+====+
| 17 | 4021 | 4 | 92 |
+----+------+---+----+
答案 1 :(得分:2)
str.center可以让事情变得更轻松。
for i in list:
print '[ ' + ' | '.join([str(j).center(4) for j in i]) + ' ]'
输出:
[ 4 | 3 | 7 | 23 ]
[ 17 | 4021 | 4 | 92 ]
如果您需要替代解决方案,可以使用str.format:
for i in list:
print '[ ' + ' | '.join(["{:^4}".format(j) for j in i]) + ' ]'
输出:
[ 4 | 3 | 7 | 23 ]
[ 17 | 4021 | 4 | 92 ]
答案 2 :(得分:0)
这里:
list = [[4, 3, 7, 23],[17, 4021, 4, 92]]
for sublist in list:
output = "["
for index, x in enumerate(sublist):
output +='{:^6}'.format(x)
if index != len(sublist)-1:
output += '|'
output +=']'
print output
输出:
[ 4 | 3 | 7 | 23 ]
[ 17 | 4021 | 4 | 92 ]