我有以下输出,其中包含两列(行号和 ID):
1 Q50331
2 P75247
3 P75544
4 P22446
5 P78027
6 P75271
7 P75176
8 P0ABB4
9 P63284
10 P0A6M8
11 P0AES4
12 P39452
13 P0A8T7
14 P0A698
如何使第二列的 ID 值彼此顶部对齐,如下所示:
1 Q50331
2 P75247
3 P75544
4 P22446
5 P78027
6 P75271
7 P75176
8 P0ABB4
9 P63284
10 P0A6M8
11 P0AES4
12 P39452
13 P0A8T7
14 P0A698
我面临的问题是如何将解决方案合并到我的代码中。我尝试使用 python tabulate
,但发现这无法正常工作,因为我正在打印: row[0]
is a unicode from the tuple row
(请参阅以下代码)。
count = 0
for row in c:
count += 1
print count, row[0]
知道如何合并制表或其他方法来对齐列中的 unicode 类型值吗?
使用alignment specifiers :
data = {
1:'Q50331',
2:'P75247',
3:'P75544',
4:'P22446',
5:'P78027',
6:'P75271',
7:'P75176',
8:'P0ABB4',
9:'P63284',
10:'P0A6M8',
11:'P0AES4',
12:'P39452',
13:'P0A8T7',
14:'P0A698',
333:'P00bar'
}
length = len(str(max(data.keys())))+1
for k,v in data.items():
print "{:<{}}{}".format(k, length, v)
输出:
1 Q50331
2 P75247
3 P75544
4 P22446
5 P78027
6 P75271
7 P75176
8 P0ABB4
9 P63284
10 P0A6M8
11 P0AES4
12 P39452
13 P0A8T7
14 P0A698
333 P00bar
我创建了 length
,它将包含 data
键的最大值的长度 +1。然后我将该 length
值传递给我的对齐说明符,在本例中为 4:
{:<4}{}
我是一名优秀的程序员,十分优秀!