4

我有一个看起来像这样的列表列表:

data = [['seq1', 'ACTAGACCCTAG'],
        ['sequence287653', 'ACTAGNACTGGG'],
        ['s9', 'ACTAGAAACTAG']]

我将信息写入这样的文件:

for i in data:
    for j in i:
        file.write('\t')
        file.write(j)
    file.write('\n')

输出如下所示:

seq1   ACTAGACCCTAG  
sequence287653   ACTAGNACTGGG  
s9   ACTAGAAACTAG  

由于每个内部列表中第一个元素的长度不同,这些列没有整齐地排列。如何在第一个和第二个元素之间写入适当数量的空白,以使第二列对齐以供人类阅读?

4

3 回答 3

10

您需要一个格式字符串:

for i,j in data:
    file.write('%-15s %s\n' % (i,j))

%-15s表示为字符串左对齐 15 个空格的字段。这是输出:

seq1            ACTAGACCCTAG
sequence287653  ACTAGNACTGGG
s9              ACTAGAAACTAG
于 2010-09-11T05:40:23.827 回答
1
data = [['seq1', 'ACTAGACCCTAG'],
        ['sequence287653', 'ACTAGNACTGGG'],
        ['s9', 'ACTAGAAACTAG']]
with open('myfile.txt', 'w') as file:
    file.write('\n'.join('%-15s %s' % (i,j) for i,j in data) )

对我来说比用循环表达更清楚

于 2010-09-11T06:35:27.610 回答
0

"%10s" % obj将确保至少 10 个空格,其中 obj 的字符串表示在右侧对齐。

"%-10s" % obj做同样的事情,但向左对齐。

于 2010-09-11T05:46:21.067 回答