我有一个列表列表,如下所示:
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 由于每个内部列表中第一个元素的长度不同,列的排列不整齐。如何在第一个和第二个元素之间写入适当数量的空格,以使第二列对齐以便于人类阅读?
发布于 2010-09-11 13:40:24
您需要一个格式字符串:
for i,j in data:
file.write('%-15s %s\n' % (i,j))%-15s表示左对齐一个字符串的15个空格的字段。下面是输出:
seq1 ACTAGACCCTAG
sequence287653 ACTAGNACTGGG
s9 ACTAGAAACTAG发布于 2010-09-11 14:35:28
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-11 13:46:21
"%10s" % obj将确保obj的字符串表示形式右对齐,至少有10个空格。
"%-10s" % obj也做同样的事情,但要靠左对齐。
https://stackoverflow.com/questions/3689936
复制相似问题