Gibt es in Python eine Funktion, mit der ich einen Wert an einer bestimmten Position eines Strings einfügen kann?
Etwas wie das:
"3655879ACB6"
dann in Position 4 hinzufügen "-"
, um zu werden"3655-879ACB6"
Python-Strings sind unveränderlich.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Es ist jedoch möglich, eine neue Zeichenfolge mit dem eingefügten Zeichen zu erstellen:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
s[:-4]
Das scheint sehr einfach zu sein:
Wenn Sie jedoch so etwas wie eine Funktion mögen, gehen Sie wie folgt vor:
quelle
Da Zeichenfolgen unveränderlich sind, besteht eine andere Möglichkeit darin, die Zeichenfolge in eine Liste umzuwandeln, die dann indiziert und geändert werden kann, ohne dass Tricks auftreten müssen. Um die Liste jedoch wieder auf eine Zeichenfolge zu bringen, müssen Sie
.join()
eine leere Zeichenfolge verwenden.Ich bin mir nicht sicher, wie sich dies in Bezug auf die Leistung verhält, aber ich habe das Gefühl, dass es für die Augen einfacher ist als für die anderen Lösungen. ;-);
quelle
Einfache Funktion, um dies zu erreichen:
quelle
Ich habe eine sehr nützliche Methode entwickelt, um einen String an einer bestimmten Position in Python hinzuzufügen :
beispielsweise:
wir werden als Ausgabe haben:
quelle
Ich denke, die obigen Antworten sind in Ordnung, aber ich würde erklären, dass sie einige unerwartete, aber gute Nebenwirkungen haben ...
Wenn der Index pos_i sehr klein (zu negativ) ist, wird der Einfügezeichenfolge vorangestellt. Wenn zu lang, wird die Einfügezeichenfolge angehängt. Wenn pos_i zwischen -len (string_s) und + len (string_s) - 1 liegt, wird der Insert-String an der richtigen Stelle eingefügt.
quelle
Python 3.6+ mit F-String:
gibt
quelle
Wenn Sie viele Einsätze wünschen
quelle