Python:如何批量(%操作符)格式化字符?

经常用%操作符来转义提高效率:

a='2'

b='1+1 is %s'%(a)

b的输出结果为:'1+1 is 2'

即使a是序列也足够方便:

a=['2','4']

b='1+1 is %s,2+2 is %s'%(a[0],a[1])

b的输出结果为:'1+1 is 2,2+2 is 4'

但是如果出现了比较长的序列,比如a的长度为100,如果还是按照上面这样人肉写进去就很麻烦,简单点的代码应该怎么写呢?请大神不吝指教

++++++++++++++++++++++分割线+++++++++++++

如果需要改变输出格式呢?比如在序列里是字符,输出要输出成数值,可以用string.atof()来转化字符为数值:

a=['2','4']

b='1+1 is %f,2+2 is %f'%(string.atof(a[0]),string.atof(a[1]))

这样就不能用%(tuple(a))了

这种情况的代码应该怎么写?

阅读 4.3k
4 个回答

代码能贴的让人好理解点吗?一眼看去,一脸懵逼。

a=['2','4']
b='1+1 is %s,2+2 is %s'%(tuple(a))

格式化字符串也是可以自由拼接的

('%s ' * 100) % tuple(range(100))

a = ['2','4']

b = '1+1 is %s,2+2 is %s' % tuple(a)