可以说变量“信息”有以下字符串:如何使用Python格式化字符串与分隔成列
abc: 234234
aadfa: 235345
bcsd: 992
在Python中,什么是格式化“信息”,以最简单的方式:
abc: 234234
aadfa: 235345
bcsd: 992
可以说变量“信息”有以下字符串:如何使用Python格式化字符串与分隔成列
abc: 234234
aadfa: 235345
bcsd: 992
在Python中,什么是格式化“信息”,以最简单的方式:
abc: 234234
aadfa: 235345
bcsd: 992
这将工作:
>>> s = """abc: 234234
... aadfa: 235345
... bcsd: 992"""
>>> print s
abc: 234234
aadfa: 235345
bcsd: 992
现在我们可以在新线和空间分割每行获得每个项目:
>>> pairs = [x.split() for x in s.split('\n') ]
>>> pairs
[['abc:', ' 234234'], ['aadfa:', ' 235345'], ['bcsd:', ' 992']]
现在格式化每个字符串:
>>> for pair in pairs:
... print '{0:10} {1}'.format(pair[0], pair[1])
...
abc: 234234
aadfa: 235345
bcsd: 992
注意我们是如何在字符串格式化使用{0:10}
?这仅仅意味着用10个字符来格式化该参数。
希望以下代码有所帮助。
>>> 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
你能告诉我们你有什么到目前为止已经试过?我很肯定你需要遍历标签,找到最大长度,再次在标签上循环,用足够的空间填充它们。 – tacaswell 2013-04-06 01:33:18