[英]String formatting alignment
我已经设法将一些数据打印成这种格式:
GAT Aspartic 36.4597 87663 3.65
CGG Arginine 2.3728 5705 0.24
但是可以看出第3和第4列在左边对齐。 我用以下方法实现了:
frequency = {'GAT': ['Aspartic', 36.459695863509154, 87663, 0.03645969586350915],
'CGG': ['Arginine', 2.372752072154954, 5705, 0.002372752072154954]}
for codon in frequency.keys():
print "{}\t\t{:14s}\t{:>5.4f}\t\t\t{:6.0f}\t\t{:.2%}\n".format(codon, frequency[codon][0],frequency[codon][1], frequency[codon][2], frequency[codon][3])
将其更改为:
f.write("{}\t\t{:<14s}\t{:<.4f}\t\t\t{:<.0f}\t\t{:.2f}\n".format(...)
不改善对齐。
不应该第一个>
正确对齐吗? 我阅读了文档,但我没有得到它。
有人可以进一步解释文件吗? 谢谢
您的问题是,您的列太紧了。 指定更长的格式(例如:>8.4f
)会为您提供右对齐输出。
怎么样
frequency = {'GAT': ['Aspartic', 36.459695863509154, 87663, 0.03645969586350915],
'CGG': ['Arginine', 2.372752072154954, 5705, 0.002372752072154954]}
multi = 100
space = 20
for codon in frequency.keys():
row = frequency.get(codon)
values = [codon, row[0], "%.4f" % row[1], str(row[2]), "%.2f"% (row[3]*multi)]
r.write(''.join(map(lambda x: x.rjust(space), values)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.