给定一个定义为
的数组A数组A = [[1, 2, 3, 4], [10, 20, 30, 40], [100, 200, 300, 400]],
如果调用打印功能
for i in range(0,3):
print A[i]
以下是输出
[1, 2, 3, 4]
[10, 20, 30, 40]
[100, 200, 300, 400].
我怎样才能得到一个更漂亮的"输出如下:
[ 1, 2, 3, 4]
[ 10, 20, 30, 40]
[100, 200, 300, 400]
??? 谢谢
答案 0 :(得分:3)
您需要知道的是可能存在的最大位数。如果您的示例中的位数为3,请执行以下操作:
for i in A:
print(", ".join([str(l).rjust(3) for l in i]))
在宽度为3的字段中使用str(i).rjust(3)
将i
右对齐,其中额外字符为空格。您可以使用str(i).zfill(3)
将它们设为零,或者您可以使用str(i).rjust(3, "&")
将它们设为任意内容。
输出:
1, 2, 3, 4
10, 20, 30, 40
100, 200, 300, 400
答案 1 :(得分:1)
此代码将更具动态性。这将通过max_len找到最大数量的长度和rjust。
A = [[1, 2, 3, 4], [10, 20, 30, 40], [11100, 20033, 300, 400]]
max_len = len(str(max( max(i) for i in A)))
for i in A:
print(", ".join([str(l).rjust(max_len) for l in i]))
答案 2 :(得分:0)
为什么不为此使用numpy数组?
import numpy as np
print np.array(A)
[[ 1 2 3 4]
[ 10 20 30 40]
[100 200 300 400]]
答案 3 :(得分:0)
如果记录是一个整数,你不能在那里有这些空格,但这段代码似乎很好地拆分了数组。
A = [1999999, 2, 3, 47678], [10, 20, 30, 40], [100, 200, 300, 400]
MaxLength=0
for i in range(0,3):
for x in A[i]:
MaxLength =len(str(x)) if MaxLength<len(str(x)) else MaxLength
for i in range(0,3):
for x in range(0,len(A[i])):
Length=MaxLength-len(str(A[i][x]))
print((" "*Length)+str(A[i][x]),end="|")
print()
如果您愿意,可以在定义中调用它,只需执行以下操作:
def TableFormat(A):
MaxLength=0
for i in range(0,3):
for x in A[i]:
MaxLength =len(str(x)) if MaxLength<len(str(x)) else MaxLength
for i in range(0,3):
for x in range(0,len(A[i])):
Length=MaxLength-len(str(A[i][x]))
print((" "*Length)+str(A[i][x]),end="|")
print()
然后,您可以通过使用A作为数组TableFormat(A)
来整齐地打印表格。可以将end="|"
替换为您希望用
答案 4 :(得分:0)
最简单的方法是使用两个for循环
for list in A:
for element in list:
print element, '\t',
print '\n'
试试这个。