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

Como todas las sustituciones son de la misma lista y en secuencia esperaba que hubiera una forma más ordenada de hacer esto. ¿Alguien tiene alguna idea?

1
Sheik Yerbouti 20 sep. 2011 a las 16:27

4 respuestas

La mejor respuesta

Si len(transformMatrix) == 6, entonces puedes usar

 return "matrix(%f %f %f %f %f %f)" % tuple(transformMatrix)
5
José Tomás Tocino 20 sep. 2011 a las 12:30

Alternativamente, use el método str.format (versión 2.6+) , que es preferible a la interpolación de cadenas (%) en Python 3.x:

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

El * indica al intérprete de Python que desempaquetar los argumentos de una lista o tupla .

6
Dana the Sane 20 sep. 2011 a las 12:59
"matrix(%s)" % " ".join(["%f" % i for i in transformMatrix])

(no probado)

EDITAR: probado :-)

4
cadrian 20 sep. 2011 a las 12:30
"matrix({})".format(" ".join(map(str, transformMatrix)))

O creo que es más simple:

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

La concatenación de cadenas no debería ser un problema con tres cadenas pequeñas, pero debe evitarse usando una gran cantidad o cadenas grandes.

3
utdemir 20 sep. 2011 a las 12:51