如何在Python中将自定义掩码应用到数字串中?

2024-10-01 09:21:28 发布

您现在位置:Python中文网/ 问答频道 /正文

给定一个自定义掩码,如##/##/####(###) ###-####,以及一个长度等于自定义掩码的#个数的数字串

如何定义一个名为format的函数来将自定义掩码应用于字符串?在

例如:

> format('##/##/####','13082004')
13/08/2004

PHP中,我可以使用vsprintf来实现这一点:

^{pr2}$

我尝试过使用%运算符的Python类似的方法

mask = '%s%s/%s%s/%s%s%s%s'
mask % ', '.join(list('13082004'))

但是

TypeError: not enough arguments for format string not enough arguments for format string

我知道我为什么会犯这个错误,但我可以通过这一点。任何解决方案都是受欢迎的。在


Tags: 函数字符串formatforstring定义notmask
2条回答

对于您的语法,您需要生成一个tuple,而不是joined逗号分隔字符串,因为后者被视为一个提供的字符串参数,因此您遇到的错误是:

'%s%s/%s%s/%s%s%s%s' % tuple('13082004')

或者,使用较新的string.format()方法和*运算符将字符串解压为多个参数:

^{pr2}$
mask = '%s%s/%s%s/%s%s%s%s'
mask % tuple('13082004')

运行上述代码将导致:

^{pr2}$

相关问题 更多 >