使用列表作为格式字符串的值,而不必单独列出每个项目

时间:2011-09-20 12:27:43

标签: python

def createSVGStyleTransformationMatrix(self, transformMatrix):
    return "matrix(%f %f %f %f %f %f)"%(transformMatrix[0],transformMatrix[1],transformMatrix[2],transformMatrix[3],transformMatrix[4],transformMatrix[5])

由于所有的替换都来自同一个列表并按顺序排列,我希望有一个更简洁的方法来做到这一点。有人有任何想法吗?

4 个答案:

答案 0 :(得分:6)

或者,使用{3. 3}}方法(版本2.6+),这比Python 3.x中的字符串插值(%)更受欢迎:

return "matrix(%f %f %f %f %f %f)".format(*transformMatrix)

*指示Python解释器str.format来自列表或元组的参数

答案 1 :(得分:5)

如果len(transformMatrix) == 6,则可以使用

 return "matrix(%f %f %f %f %f %f)" % tuple(transformMatrix)

答案 2 :(得分:4)

"matrix(%s)" % " ".join(["%f" % i for i in transformMatrix])

(未经测试)

编辑:测试: - )

答案 3 :(得分:3)

"matrix({})".format(" ".join(map(str, transformMatrix)))

或者我认为它更简单:

"matrix(" + " ".join(map(str, transformMatrix) + ")" 

字符串连接不应该是三个小字符串的问题,但应避免使用大量或大字符串。