python - Comment formater un nombre variable d'arguments en une chaîne?

Nous savons que le formatage un argument peut être fait en utilisant un %s dans une chaîne de caractères:

>>> "Hello %s" % "world"
'Hello world'

deux arguments, nous pouvons utiliser deux %s (duh!):

>>> "Hello %s, %s" % ("John", "Joe")
'Hello John, Joe'

Alors, comment puis-je formater un nombre variable d'arguments sans avoir à définir de manière explicite au sein de la chaîne de base un certain nombre de %s égal au nombre d'arguments de format? il serait très cool si quelque chose comme cela existe:

>>> "Hello <cool_operator_here>" % ("John", "Joe", "Mary")
Hello JohnJoeMary
>>> "Hello <cool_operator_here>" % ("John", "Joe", "Mary", "Rick", "Sophie")
Hello JohnJoeMaryRickSophie

Est-ce encore possible ou la seule chose que je puisse faire est de faire quelque chose comme:

>>> my_args = ["John", "Joe", "Mary"]
>>> my_str = "Hello " + ("".join(["%s"] * len(my_args)))
>>> my_str % tuple(my_args)
"Hello JohnJoeMary"

NOTE: je besoin de le faire avec la %s mise en forme de chaîne de l'opérateur.

Mise à JOUR:

Il doit être avec l' %s parce que d'une fonction d'une autre bibliothèque, les formats de ma chaîne à l'aide de l'opérateur étant donné que je passe sans mise en forme de chaîne et les arguments pour le formater, mais il fait quelques vérifications et corrections (si nécessaire) sur les arguments avant de réellement faire la mise en forme.

Donc j'ai besoin de l'appeler:

>>> function_in_library("Hello <cool_operator_here>", ["John", "Joe", "Mary"])
"Hello JohnJoeMary"

Merci pour votre aide!

source d'informationauteur Gerard