Python - 使用格式字符串长度变量而不是固定长度?
Python - use format string length variable instead of fixed one?
例如我可以这样做:
"%.2s" % ('aaa')
'aa'
或
"%.1s" % ('aaa')
'a'
但是我怎样才能使那部分像 .2
变量,这样我就可以传递任何数字并且它会相应地格式化,就像我传递类似的东西一样:
"%.%ss %" (1, 'aaa') # Pseudo code
'a'
将宽度指定为*
,实际宽度将从下一个位置参数中获取:
"%.*s" % (1, 'aaa')
str.format()
method更灵活,你可以插入任何参数,而不仅仅是宽度:
"{:.{width}s}".format('aaa', width=1)
演示:
>>> "%.*s" % (1, 'aaa')
'a'
>>> "%.*s" % (2, 'aaa')
'aa'
>>> "{:.{width}s}".format('aaa', width=1)
'a'
>>> "{:.{width}s}".format('aaa', width=2)
'aa'
额外的占位符可用于构成格式规范的任何元素:
>>> "{:{align}{width}s}".format('aaa', align='<', width=4)
'aaa '
>>> "{:{align}{width}s}".format('aaa', align='>', width=4)
' aaa'
例如我可以这样做:
"%.2s" % ('aaa')
'aa'
或
"%.1s" % ('aaa')
'a'
但是我怎样才能使那部分像 .2
变量,这样我就可以传递任何数字并且它会相应地格式化,就像我传递类似的东西一样:
"%.%ss %" (1, 'aaa') # Pseudo code
'a'
将宽度指定为*
,实际宽度将从下一个位置参数中获取:
"%.*s" % (1, 'aaa')
str.format()
method更灵活,你可以插入任何参数,而不仅仅是宽度:
"{:.{width}s}".format('aaa', width=1)
演示:
>>> "%.*s" % (1, 'aaa')
'a'
>>> "%.*s" % (2, 'aaa')
'aa'
>>> "{:.{width}s}".format('aaa', width=1)
'a'
>>> "{:.{width}s}".format('aaa', width=2)
'aa'
额外的占位符可用于构成格式规范的任何元素:
>>> "{:{align}{width}s}".format('aaa', align='<', width=4)
'aaa '
>>> "{:{align}{width}s}".format('aaa', align='>', width=4)
' aaa'