我有一些Python代码如下所示:
rates = {3: [((17500, 99999), Decimal('23425.00'), Decimal('7234.24'))],
4: [(( 0, 3510), Decimal( '4563.00'), Decimal('5234.00')),
(( 3510, 17500), Decimal('34578.00'), Decimal('3464.50')),
((17500, 99999), Decimal('18268.00'), Decimal('5734.66'))],
5: [((17500, 99999), Decimal('83564.00'), Decimal('3475.60'))]}
注意,小数点是围绕小数点对齐的,而整数是右对齐的。在
有没有一些软件可以自动执行这种复杂的校准?我会对任何接近的东西感兴趣,即使它不能完全符合上面的要求。在
我也遇到了同样的问题。管理层希望从某种表格格式的数据中打印出一份漂亮的报告。在
我不想只做一堆带有“魔力”空格的print语句来修复对齐,所以我想出了一个python函数:
它不是完美的,你需要调整它来产生你想要的输出。最具体地说,它当前需要一个列表,因为我希望以特定的顺序传递,而字典没有被排序。在
虽然标准库
pprint
模块将添加空白以使字典和列表在屏幕上至少看起来合理,但我不知道有什么东西可以,例如,认为字符串常量中的句点是有效的,并添加足够的空白来对齐它们!除非我大错特错,否则您可能总是手工在Python中进行这种对齐。在如果您将这些值存储在一个单独的纯文本表文件中,那么,当然,您可能会找到几个愿意帮助您对齐小数点的编辑器。在
(注意:我不认为以下是特别明智的。)
在大多数情况下,如果您只是键入原始代码(大多数编辑器都会帮助您对齐dict和列表项),您应该得到这样的结果:
(我将一些值变长,一些值变短,以增加一点古怪。)
使用用于Vim的Tabular插件,在上面的代码上按顺序执行以下命令(您可能希望可视化地阻止它),将以与您最初的问题相匹配的方式格式化上述代码:
^{pr2}$操作包括:
[
s和(
s(
s,这将修复与第一个操作的不对齐。在(17500,
上的类似于,
的值。在, 99999)
上的类似于,
的值。在'4563.00'
类值对齐.
。在您可以制作一个在普通和可视模式下使用的映射:
最终结果:
显然,这些操作的有效性取决于代码的结构和原始格式,但希望这能启发您。在
相关问题 更多 >
编程相关推荐