Python格式字符串中的width变量

罗尔夫·布莱

为了打印表格数据的标题,我只想使用一种格式字符串line和一种用于列宽的规范w1, w2, w3(或者即使w = x, y, z可能的话)。

我看了这个,但tabulate等不要让我证明的东西列样format做。

此方法有效:

head = 'eggs', 'bacon', 'spam'  
w1, w2, w3 = 8, 7, 10  # column widths  
line = '  {:{ul}>{w1}}  {:{ul}>{w2}}  {:{ul}>{w3}}'  
under = 3 * '='  
print line.format(*head, ul='', w1=w1, w2=w2, w3=w3)  
print line.format(*under, ul='=', w1=w1, w2=w2, w3=w3)  

我必须有各自的名称宽度{w1}{w2}...格式字符串?尝试{w[1]}{w[2]}给予KeyErrorkeyword can't be an expression

我也觉得w1=w1, w2=w2, w3=w3不是很简洁。有没有更好的办法?

罗尔夫·布莱

这是jonrsharpe对我的OP的评论,其目的是可视化正在发生的事情。

line = '  {:{ul}>{w1}}  {:{ul}>{w2}}  {:{ul}>{w3}}'
under = 3 * '_'

head = 'sausage', 'rat', 'strawberry tart'

# manual dict 
v = {'w1': 8, 'w2':5, 'w3': 17}
print line.format(*under, ul='_', **v)

# auto dict
widthl = [8, 7, 9]
x = {'w{}'.format(index): value for index, value in enumerate(widthl, 1)}
print line.format(*under, ul='_', **x)     

关键是我希望能够快速重新排列标题,而不必调整格式字符串。auto dict非常漂亮的满足这一要求。

至于以这种方式填写命令:哇!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python格式字符串中的width变量

来自分类Dev

Python中的字符串+变量+字符串格式

来自分类Dev

在命名的Python字符串格式中查找可用变量

来自分类Dev

Python变量输入格式字符串

来自分类Dev

Python中的字符串格式检查

来自分类Dev

python中的字符串格式%s

来自分类Dev

Python 中的无效格式字符串

来自分类Dev

保留字符串变量中的字符格式

来自分类Dev

如何将这个datetime变量转换为python中这种格式的等效字符串?

来自分类Dev

格式化字符串,其中Python中并不总是存在变量

来自分类Dev

变量中的Python字符串方法

来自分类Dev

Python在字符串中插入变量

来自分类Dev

字符串变量中的 Python HTML

来自分类Dev

如何在flutter中准备字符串变量格式?

来自分类Dev

我可以在格式字符串中添加变量吗?

来自分类Dev

使用变量构造格式字符串

来自分类Dev

字符串中包含ANSI转义字符时,将忽略Python字符串格式

来自分类Dev

Python中的字符串和行格式

来自分类Dev

python字符串格式化行中的列

来自分类Dev

在Python中以字符串格式删除负号

来自分类Dev

字符串格式代码中的Python TypeError

来自分类Dev

在Python中反转C样式格式字符串(`%`)

来自分类Dev

如何在Python中解析C格式的字符串?

来自分类Dev

Python中的命名字符串格式参数

来自分类Dev

如何在python中从字符串格式转换日期

来自分类Dev

字符串格式美元符号在Python中

来自分类Dev

在Python中的字符串格式内循环

来自分类Dev

python中的字符串格式-使用循环填充

来自分类Dev

字符串格式,在Python中浮动的科学计数法