所以我有一个2048板的代码:
count = 0
for i in range(16):
print(nlist[i], end = ' ')
count += 1
if count == 4:
print("")
count = 0
,并且如果所有值都是一位数字,这会很好:
0 0 0 8
0 4 0 0
0 0 2 2
0 0 0 0
但是如果我有多个数字且超过1个数字:
16 0 2 2048
8 2 32 64
2 2 0 0
2048 2048 4096 4096
所有间距都弄乱了。有什么解决办法吗?
答案 0 :(得分:1)
请避免为此编写自定义函数。有很多python软件包可以在整洁的表格中打印内容。
我的建议是使用PrettyTable
from prettytable import PrettyTable
t = PrettyTable(header=False, border=False)
for i in range(0,16,4):
t.add_row(range(i, i+4))
print t
# 0 1 2 3
# 4 5 6 7
# 8 9 10 11
# 12 13 14 15
答案 1 :(得分:0)
正如Keatinge在评论中提到的那样,在打印之前迭代数组并找到最长的数字。
length = max(map(lambda x: len(str(x)), nlist)) + 1
我们取nlist
,计算出每个数字的文本长度,然后取最大值并加一个(+1表示数字之间有一个空格)。然后,在循环内部,对要查找的数字进行字符串化,并根据需要添加空格。
text = str(x)
text += ' ' * (length - len(text))
完整示例:
count = 0
length = max(map(lambda x: len(str(x)), nlist)) + 1
for i in range(16):
text = str(nlist[i])
text += ' ' * (length - len(text))
print(text, end = '')
count += 1
if count == 4:
print()
count = 0