将Python 2D矩阵/列表转换为表格

时间:2014-03-26 18:34:26

标签: python list matrix 2d tuples

我该怎么做呢:

students = [("Abe", 200), ("Lindsay", 180), ("Rachel" , 215)]

进入这个:

Abe     200

Lindsay 180

Rachel  215

编辑:这应该适用于任何大小的列表。

4 个答案:

答案 0 :(得分:5)

使用string formatting

>>> students = [("Abe", 200), ("Lindsay", 180), ("Rachel" , 215)]
>>> for a, b in students:
...     print '{:<7s} {}'.format(a, b)
...
Abe     200
Lindsay 180
Rachel  215

答案 1 :(得分:0)

编辑:有人更改了问题的关键细节 Aशwiniचhaudhary给出了一个很好的答案。如果你现在不能学习/使用string.format,那么解决问题的更通用/算法的方法是这样的:

for (name, score) in students:
    print '%s%s%s\n'%(name,' '*(10-len(name)),score)

答案 2 :(得分:0)

使用rjust和ljust:

for s in students:
    print s[0].ljust(8)+(str(s[1])).ljust(3)

输出:

 Abe     200
 Lindsay 180
 Rachel  215

答案 3 :(得分:0)

对于 Python 3.6 + ,您可以将 f-string 用于Ashwini Chaudhary的单行版本:

>>> students = [("Abe", 200), ("Lindsay", 180), ("Rachel" , 215)]
>>> print('\n'.join((f'{a:<7s} {b}' for a, b in students)))
Abe     200
Lindsay 180
Rachel  215

如果您不知道列表中最长字符串的 length ,则可以计算,如下所示:

>>> width = max([len(s[0]) for s in students])
>>> print('\n'.join((f'{a:<{width}} {b}' for a, b in students)))
Abe     200
Lindsay 180
Rachel  215