我正在尝试复制此字符串:
这就是我的尝试,就像您看到的值未正确对齐一样。我知道我需要使用某种类型的填充,但是我所做的一切都失败了。
这是我的代码:
individual_text = '''
Highest Individual Question Scores
• Leaders
• {}{:.2f}
• {}{:.2f}
• {}{:.2f}
• Colleagues
• {}{:.2f}
• {}{:.2f}
• {}{:.2f}
Lowest Individual Question Scores
• Leaders
• {}{:.2f}
• {}{:.2f}
• {}{:.2f}
• Colleagues
• {}{:.2f}
• {}{:.2f}
• {}{:.2f}
'''.format(top_3_leader.index[0], top_3_leader.values[0],
top_3_leader.index[1], top_3_leader.values[1],
top_3_leader.index[2], top_3_leader.values[2],
top_3_colleague.index[0], top_3_colleague.values[0],
top_3_colleague.index[1], top_3_colleague.values[1],
top_3_colleague.index[2], top_3_colleague.values[2],
bottom_3_leader.index[0], bottom_3_leader.values[0],
bottom_3_leader.index[1], bottom_3_leader.values[1],
bottom_3_leader.index[2], bottom_3_leader.values[2],
bottom_3_colleague.index[0], bottom_3_colleague.values[0],
bottom_3_colleague.index[1], bottom_3_colleague.values[1],
bottom_3_colleague.index[2], bottom_3_colleague.values[2]
)
如何格式化文本使其看起来像第一张图片?
答案 0 :(得分:2)
我认为这是ljust
的{{1}}方法的任务,请考虑以下示例:
str
输出:
x = [('text',1.14),('another text',7.96),('yet another text',9.53)]
for i in x:
print(i[0].ljust(25)+"{:.2f}".format(i[1]))
还存在text 1.14
another text 7.96
yet another text 9.53
在开头而不是结尾处添加空格。
答案 1 :(得分:1)
您只需要为每行的第一个元素指定一个恒定的长度:
individual_text = '''
• {:40}{:.2f}
• {:40}{:.2f}
'''.format('some_text', 3.86,
'text_with_another_length', 3.85,
)
print(individual_text)
# output:
# • some_text 3.86
# • text_with_another_length 3.85
您可以通过以下方式计算该长度:
import itertools
minimum_spaces = 3
length = minimum_spaces + max(len(item) for item in itertools.chain(
top_3_leader.index, top_3_colleague, bottom_3_leader, bottom_3_colleague
))