wstawianie znaków na początku i na końcu łańcucha

107

Jestem nowy i próbuję znaleźć sposób na wstawienie liczby L na początku i na końcu ciągu. Więc jeśli mam ciąg, który mówi

„Gdzie dziś rano położyłem babeczkę”

I chcę wstawić 1 litr na początku i 2 litry na końcu, więc wygląda to tak: „L Gdzie położyłem dziś rano babeczkę?” Jak to zrobić. Dziękuję Ci

user1319219
źródło

Odpowiedzi:

135

Ciągi są niezmienne, więc nie można wstawiać znaków do istniejącego ciągu. Musisz stworzyć nowy ciąg. Możesz użyć konkatenacji ciągów, aby robić, co chcesz:

yourstring = "L" + yourstring + "LL"

Zauważ, że możesz również utworzyć ciąg z n Ls, używając mnożenia:

m = 1
n = 2
yourstring = ("L" * m) + yourstring + ("L" * n)
Mark Byers
źródło
30

Dla kompletności wraz z innymi odpowiedziami:

yourstring = "L%sLL" % yourstring

Lub, bardziej kompatybilny w przód z Pythonem 3.x:

yourstring = "L{0}LL".format(yourstring)
C2H5OH
źródło
3
W drugim przykładzie użycie tylko jednego argumentu dla .format jako „0” jest niepotrzebne, prawda?
quapka
@quapka: Jest to konieczne, jeśli kod musi być kompatybilny z Pythonem 2.6
Hubert Kario
27

Możesz także użyć dołączenia:

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

Wynik:

>>> yourstring
'LyourstringLL'
Akavall
źródło
10

Jeśli chcesz wstawić inny ciąg w innym miejscu istniejącego ciągu, możesz użyć poniższej metody wyboru.

Wywołanie znaku na drugiej pozycji:

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

Zakres wywołania z pozycją początkową i końcową:

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

Wywołanie części łańcucha przed tą pozycją:

>>> s[:6]
'012345'

Wywołanie części łańcucha po tej pozycji:

>>> s[4:]
'456789'

Wstawianie struny na piątej pozycji.

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

sJest również odpowiednikiem s[:].

W swoim pytaniu możesz użyć całego swojego ciągu, tj

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

lub jeśli "L"jest to jakiś inny ciąg (na przykład nazywam go as l), możesz użyć tego kodu:

>>> s = l + s + (l * 2)
XCanG
źródło
4

Dodając do odpowiedzi C2H5OH , w Pythonie 3.6+ możesz użyć ciągów formatujących, aby uczynić go nieco czystszym:

s = "something about cupcakes"
print(f"L{s}LL")
ryanjdillon
źródło
2

Powiedzmy, że mamy ciąg o nazwie 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
źródło
0

Renderuję adres URL przez dane wejściowe użytkownika. Tam, jeśli użytkownik wprowadzi ciąg z dwoma słowami, chcę wydrukować słowo z + pomiędzy

Przykład

key = input("Enter the product :")

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

print (URL)

User input: iphone 11

W przypadku powyższego kodu otrzymuję adres URL „ http://exmaple.com/iphone 11”

Ale chcę wydrukować adres URL jako „ http://exmaple.com/iphone+11

Dusky Dood
źródło