-4
votes

Python: Comment puis-je remplacer plusieurs occurrences d'une chaîne par des valeurs dans un tuple

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 commentaires

"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


4 Réponses :


1
votes

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)


0 commentaires

2
votes

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)))


0 commentaires

1
votes

Il y a une réponse simple:

Hello world, how are you, 1

Production:

print("Hello %s, how are %s, %s" % ("world", "you", 1))


0 commentaires

2
votes

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.


0 commentaires