Einfügen von Zeichen am Anfang und Ende einer Zeichenfolge

100

Ich bin neu und versuche einen Weg zu finden, eine Anzahl von Ls am Anfang und Ende eines Strings einzufügen. Also, wenn ich eine Zeichenfolge habe, die sagt

"Wo habe ich heute Morgen meinen Cupcake hingelegt?"

Und ich möchte 1 l am Anfang und 2 l am Ende einfügen, also sieht es so aus: "Wo habe ich heute Morgen meinen Cupcake hingelegt?" Wie mache ich das? Danke

user1319219
quelle

Antworten:

132

Zeichenfolgen sind unveränderlich, sodass Sie keine Zeichen in eine vorhandene Zeichenfolge einfügen können. Sie müssen eine neue Zeichenfolge erstellen. Sie können die Zeichenfolgenverkettung verwenden, um das zu tun, was Sie möchten:

yourstring = "L" + yourstring + "LL"

Beachten Sie, dass Sie Lmithilfe der Multiplikation auch eine Zeichenfolge mit ns erstellen können :

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

Der Vollständigkeit halber zusammen mit den anderen Antworten:

yourstring = "L%sLL" % yourstring

Oder vorwärtskompatibler mit Python 3.x:

yourstring = "L{0}LL".format(yourstring)
C 2 H 5 OH
quelle
3
Für das zweite Beispiel ist die Verwendung von nur einem Argument für .format die '0' nicht erforderlich, oder?
Quapka
@quapka: Es ist notwendig, wenn der Code mit Python 2.6 kompatibel sein muss
Hubert Kario
26

Sie können auch join verwenden:

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

Ergebnis:

>>> yourstring
'LyourstringLL'
Akavall
quelle
9

Wenn Sie eine andere Zeichenfolge an einer anderen Stelle in eine vorhandene Zeichenfolge einfügen möchten, können Sie die folgende Auswahlmethode verwenden.

Aufruf des Charakters an zweiter Stelle:

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

Anrufbereich mit Start- und Endposition:

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

Aufrufen eines Teils einer Zeichenfolge vor dieser Position:

>>> s[:6]
'012345'

Aufrufen eines Teils eines Strings nach dieser Position:

>>> s[4:]
'456789'

Fügen Sie Ihre Saite an der 5. Position ein.

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

Ist auch sgleichbedeutend mit s[:].

Mit Ihrer Frage können Sie alle Ihre Zeichenfolge verwenden, dh

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

oder wenn "L"es sich um eine andere Zeichenfolge handelt (zum Beispiel nenne ich sie l), können Sie diesen Code verwenden:

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

Zusätzlich zu C2H5OH Antwort , in Python 3.6+ Sie Format - Strings verwenden können, um es ein bisschen sauberer:

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

Angenommen, wir haben eine Zeichenfolge namens 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
quelle
0

Ich rendere eine URL durch Benutzereingabe. Wenn der Benutzer eine Zeichenfolge mit zwei Wörtern eingibt, möchte ich das Wort mit + dazwischen drucken

Beispiel

key = input("Enter the product :")

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

print (URL)

User input: iphone 11

Für den obigen Code erhalte ich eine URL als " http://exmaple.com/iphone 11".

Ich möchte die URL jedoch als " http://exmaple.com/iphone+11 " drucken.

Dusky Dood
quelle