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?
4 respuestas
Si len(transformMatrix) == 6
, entonces puedes usar
return "matrix(%f %f %f %f %f %f)" % tuple(transformMatrix)
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 .
"matrix(%s)" % " ".join(["%f" % i for i in transformMatrix])
(no probado)
EDITAR: probado :-)
"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.
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.