获取数字列表列表并将其显示为网格中的字符串

时间:2015-02-26 02:30:42

标签: python list python-3.x for-loop nested-lists

我正在尝试定义一个函数,它接受列表,如[[0,1,2,3,5,5,[0,1,4,9,16,25],[0 ,1,8,27,64,125]]并使用“\ t”返回数字网格,如下所示

0   1   2   3   4   5   
0   1   4   9   16  25  
0   1   8   27  64  125 

到目前为止我只有:

def print_table(alist):
    for i in alist:
        print(i)

只是很好地打印每个列表......但仍然在列表中。

2 个答案:

答案 0 :(得分:1)

你可以这样做:

l = [[0,1,2,3,4,5],[0,1,4,9,16,25],[0,1,8,27,64,125]]

print("\n".join("\t".join(map(str, v)) for v in l))

结果是:

0   1   2   3   4   5
0   1   4   9   16  25
0   1   8   27  64  125

如果要在函数中重用此代码,可以为它创建简单的lambda:

as_grid = lambda in_list: "\n".join("\t".join(map(str, v)) for v in l)

print(as_grid(l))

答案 1 :(得分:0)

lists = [[0,1,2,3,4,5],[0,1,4,9,16,25],[0,1,8,27,64,125]]
y = []
for l in lists:
    l = [str(z) for z in l]
    y.append('\t'.join(l))
print '\n'.join(y)

打印:

0   1   2   3   4   5
0   1   4   9   16  25
0   1   8   27  64  125