如何对齐列的UnicodeType值?

2024-04-19 23:25:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下输出,其中包含两列(行#和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]是元组row中的unicode(请参阅下面的代码)。你知道吗

count = 0
for row in c:
        count += 1
        print count, row[0]

知道如何合并tabulate或其他方法来对齐列中的unicode类型值吗?你知道吗


Tags: idcountrowp78027p75271p39452q50331p75247
1条回答
网友
1楼 · 发布于 2024-04-19 23:25:46

使用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}{}

相关问题 更多 >