insertion de caractères au début et à la fin d'une chaîne

100

Je suis nouveau et j'essaie de trouver un moyen d'insérer un certain nombre de L au début et à la fin d'une chaîne. Donc si j'ai une chaîne qui dit

"où ai-je mis mon petit gâteau ce matin"

Et je veux insérer 1 L au début et 2 L à la fin, donc ça ressemble à: "Où ai-je mis mon cupcake ce matinLL" Comment dois-je faire cela. Merci

user1319219
la source

Réponses:

132

Les chaînes sont immuables, vous ne pouvez donc pas insérer de caractères dans une chaîne existante. Vous devez créer une nouvelle chaîne. Vous pouvez utiliser la concaténation de chaînes pour faire ce que vous voulez:

yourstring = "L" + yourstring + "LL"

Notez que vous pouvez également créer une chaîne avec n Ls en utilisant la multiplication:

m = 1
n = 2
yourstring = ("L" * m) + yourstring + ("L" * n)
Mark Byers
la source
27

Pour être complet avec les autres réponses:

yourstring = "L%sLL" % yourstring

Ou, plus compatible avec Python 3.x:

yourstring = "L{0}LL".format(yourstring)
C2H5OH
la source
3
Pour le deuxième exemple, utiliser un seul argument pour .format le «0» est inutile, non?
quapka
@quapka: il est nécessaire si le code doit être compatible avec Python 2.6
Hubert Kario
26

Vous pouvez également utiliser join:

yourstring = ''.join(('L','yourstring','LL'))

Résultat:

>>> yourstring
'LyourstringLL'
Akavall
la source
9

Si vous souhaitez insérer une autre chaîne ailleurs dans la chaîne existante, vous pouvez utiliser la méthode de sélection ci-dessous.

Caractère appelant en deuxième position:

>>> s = "0123456789"
>>> s[2]
'2'

Plage d'appel avec position de début et de fin:

>>> s[4:6]
'45'

Appel d'une partie d'une chaîne avant cette position:

>>> s[:6]
'012345'

Appel d'une partie d'une chaîne après cette position:

>>> s[4:]
'456789'

Insérez votre corde en 5ème position.

>>> s = s[:5] + "L" + s[5:]
>>> s
'01234L56789'

Équivaut également sà s[:].

Avec votre question, vous pouvez utiliser toute votre chaîne, c'est-à-dire

>>> s = "L" + s + "LL"

ou si "L"est une autre chaîne (par exemple, je l'appelle comme l), vous pouvez utiliser ce code:

>>> s = l + s + (l * 2)
XCanG
la source
4

En plus de la réponse de C2H5OH , dans Python 3.6+, vous pouvez utiliser des chaînes de format pour le rendre un peu plus propre:

s = "something about cupcakes"
print(f"L{s}LL")
Ryanjdillon
la source
2

Disons que nous avons une chaîne appelée yourstring:

for x in range(0, [howmanytimes you want it at the beginning]):
    yourstring = "L" + yourstring
for x in range(0, [howmanytimes you want it at the end]):
    yourstring += "L"
ytpillai
la source
0

Je rend une URL par entrée utilisateur. Là, si l'utilisateur entre une chaîne avec deux mots, je veux imprimer le mot avec + entre les deux

Exemple

key = input("Enter the product :")

URL = "http://exmaple.com/"

print (URL)

User input: iphone 11

Pour le code ci-dessus, j'obtiens une URL comme " http://exmaple.com/iphone 11"

Mais je souhaite imprimer l'URL sous la forme " http://exmaple.com/iphone+11 "

Dusky Dood
la source