insertar caracteres al principio y al final de una cadena

100

Soy nuevo y estoy tratando de encontrar una manera de insertar una serie de L al principio y al final de una cadena. Entonces, si tengo una cadena que dice

"¿Dónde puse mi cupcake esta mañana?"

Y quiero insertar 1 L al principio y 2 L al final, por lo que se ve así: "¿Dónde puse mi cupcake esta mañana?" ¿Cómo hago esto? gracias

usuario1319219
fuente

Respuestas:

132

Las cadenas son inmutables, por lo que no puede insertar caracteres en una cadena existente. Tienes que crear una nueva cadena. Puede usar la concatenación de cadenas para hacer lo que quiera:

yourstring = "L" + yourstring + "LL"

Tenga en cuenta que también puede crear una cadena con n Ls mediante la multiplicación:

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

Para completar junto con las otras respuestas:

yourstring = "L%sLL" % yourstring

O, más compatible con Python 3.x:

yourstring = "L{0}LL".format(yourstring)
C2H5OH
fuente
3
Para el segundo ejemplo, usar solo un argumento para .format el '0' es innecesario, ¿verdad?
quapka
@quapka: Es necesario si el código debe ser compatible con Python 2.6
Hubert Kario
26

También puede utilizar unirse:

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

Resultado:

>>> yourstring
'LyourstringLL'
Akavall
fuente
9

Si desea insertar otra cadena en algún otro lugar de la cadena existente, puede utilizar el método de selección a continuación.

Personaje de llamada en segunda posición:

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

Rango de llamada con posición inicial y final:

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

Llamar a parte de una cadena antes de esa posición:

>>> s[:6]
'012345'

Llamar a parte de una cadena después de esa posición:

>>> s[4:]
'456789'

Insertando su cuerda en la quinta posición.

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

También ses equivalente a s[:].

Con tu pregunta puedes usar toda tu cadena, es decir

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

o si "L"es alguna otra cadena (por ejemplo, la llamo como l), entonces puede usar ese código:

>>> s = l + s + (l * 2)
XCanG
fuente
4

Agregando a la respuesta de C2H5OH , en Python 3.6+ puede usar cadenas de formato para hacerlo un poco más limpio:

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

Digamos que tenemos una cadena llamada 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
fuente
0

Estoy representando una URL por entrada del usuario. Allí, si el usuario ingresa una cadena con dos palabras, quiero imprimir la palabra con + en el medio

Ejemplo

key = input("Enter the product :")

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

print (URL)

User input: iphone 11

Para el código anterior, obtengo una URL como " http://exmaple.com/iphone 11"

Pero quiero imprimir la URL como " http://exmaple.com/iphone+11 "

Dood oscuro
fuente