如何使用python将带分隔符的字符串格式化为列

2024-10-01 09:16:26 发布

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

假设变量“info”具有以下字符串:

abc: 234234
aadfa: 235345
bcsd: 992

在python中,将“info”格式化为:

^{pr2}$

Tags: 字符串infoabcpr2bcsdaadfa
3条回答

希望下面的代码有帮助。在

>>> import math
>>> info = ["abc: 234234", "aadfa: 235345", "bcsd: 992"]
>>> info = [item.split() for item in info]
>>> maxlen = max([len(item[0]) for item in info])
>>> maxlen = math.ceil(maxlen/8.0)*8
>>> info = [item[0]+" "*(maxlen-len(item[0]))+item[1] for item in info]

您可以控制最终长度的生成方式。在

盗取@JoshSmeaton的变量名:

>>> pairs = map(str.split, text.splitlines())
>>> max_len = max(len(pair[0]) for pair in pairs)
>>> info = '\n'.join('{key:<{indent}}{val}'.format(key=k,
                                                   indent=max_len + 2,
                                                   val=v) for k, v in pairs)
>>> print info
abc:    234234
aadfa:  235345
bcsd:   992

这将起作用:

>>> s = """abc: 234234
... aadfa: 235345
... bcsd: 992"""
>>> print s
abc: 234234
aadfa: 235345
bcsd: 992

现在,我们可以拆分新行和空间,以获得每行的每个项目:

^{pr2}$

现在格式化每个字符串:

>>> for pair in pairs:
...     print '{0:10} {1}'.format(pair[0], pair[1])
...
abc:        234234
aadfa:      235345
bcsd:       992

注意我们如何在字符串格式中使用{0:10}?这意味着要用10个字符格式化参数。在

相关问题 更多 >