Python: ¿una forma corta de desempaquetar la lista para el operador de formato de cadena?

Las variaciones de los operadores * o ** no parecen funcionar, desafortunadamente:

lstData = [1,2,3,4] str = 'The %s are %d, %d, %d, and %d' % ('numbers', *lstData) 

hay una manera fácil?

Utilizar formato :

 str = 'The {} are {}, {}, {}, and {}'.format('numbers', *lstData) 

Consulte la documentación para obtener más detalles sobre el posible formato (flotantes, puntos decimales, conversión, …).

 s = 'The %s are %d, %d, %d, and %d' % tuple(['numbers'] + lstData) 
 >>> data = range(5) >>> 'The {0} are {1}, {2}, {3}, {4} and {5}'.format('numbers', *data) 'The numbers are 0, 1, 2, 3 and 4'