J'ai une chaîne telle que: "Hello %s, how are %s, %s"
Je dois remplacer toutes les occurrences de %s
par les éléments du tuple ("world", "you", 1)
pour que la sortie soit:
Hello world, how are you, 1
4 Réponses :
Si votre objectif est de remplacer les occurrences de chaîne, vous pouvez essayer ce qui suit:
Hello world, how are you, 1
Production:
string = 'Hello %s, how are %s, %s' tupl = ('world', 'you', '1') for t in tupl: string = string.replace('%s', t, 1) print(string)
Vous pouvez utiliser la méthode .format()
:
Hello world, how are you, 1
L'étoile *
vous permet de décompresser le tuple afin que la fonction .format()
puisse les élaborer.
Regardez ici pour plus d'exemples.
Si vous ne souhaitez pas utiliser le .format()
, jetez un œil à ceci:
print("Hello %s, how are %s, %s" % (("world", "you", 1)))
Les deux méthodes afficheront:
print("Hello {0}, how are {1}, {2}".format(*("world", "you", 1)))
Il y a une réponse simple:
Hello world, how are you, 1
Production:
print("Hello %s, how are %s, %s" % ("world", "you", 1))
Vous pouvez faire quelque chose comme ceci:
tupleFormat("Hello %s, how are %s, %s", ("world", "you", 1))
et alors vous pourriez faire votre exemple comme:
def tupleFormat(string, format): return string % format
Vous pouvez utiliser l'opérateur% sur les chaînes et les tuples, exactement comme vous le souhaitez.
"Hello %s, how are %s, %s" % ("world", "you", 1)
? Voir par exemple docs.python.org/3/library/… .Est-ce que cela répond à votre question? Comment imprimer comme printf en Python3?
Hey @Gaurav Sharma voudriez-vous remplacer les occurrences de chaîne ou simplement imprimer en utilisant format ()?
Est-ce que cela répond à votre question?Formatage de chaîne:% vs .format vs chaîne littérale