fam*_*kin 48 python string string-formatting
如何str.format在Python中截断字符串?它甚至可能吗?
格式规范迷你语言中width提到了一个参数:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
...
width ::= integer
...
Run Code Online (Sandbox Code Playgroud)
但是明确指定它只适用于填充,而不是截断:
>>> '{:5}'.format('aaa')
'aaa '
>>> '{:5}'.format('aaabbbccc')
'aaabbbccc'
Run Code Online (Sandbox Code Playgroud)
所以它实际上是宽度的最小宽度.
我知道我可以对字符串进行切片,但是我在这里处理的数据是完全动态的,包括格式字符串和进入的args.我不能只是去明确切片.
fal*_*tru 75
.precision改为使用:
>>> '{:5.5}'.format('aaabbbccc')
'aaabb'
Run Code Online (Sandbox Code Playgroud)
根据格式规范迷你语言的文档:
的精度是指示多少位数应的小数点格式化与浮点值之后显示的十进制数
'f'和'F',或之前和小数点用于与格式化的浮点值之后'g'或'G'.对于非数字类型,该字段表示最大字段大小 - 换句话说,将使用字段内容中将使用的字符数.的精度是不允许的整数值.
ale*_*lex 10
您可以仅按精度参数截断:
>>> '{:.1}'.format('aaabbbccc')
'a'
Run Code Online (Sandbox Code Playgroud)
size 参数设置填充尺寸:
>>> '{:3}'.format('ab')
' ab'
Run Code Online (Sandbox Code Playgroud)
亚历克斯