Czy w Pythonie jest jakaś funkcja, której mogę użyć do wstawienia wartości w określonej pozycji ciągu?
Coś takiego:
"3655879ACB6"
następnie na pozycji 4 dodaj, "-"
aby stać"3655-879ACB6"
Nie. Ciągi Pythona są niezmienne.
>>> s='355879ACB6'
>>> s[4:4] = '-'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
Możliwe jest jednak utworzenie nowego ciągu zawierającego wstawiony znak:
>>> s[:4] + '-' + s[4:]
'3558-79ACB6'
s[:-4]
Wydaje się to bardzo proste:
Jeśli jednak podoba ci się coś takiego jak funkcja, zrób tak:
źródło
Ponieważ łańcuchy są niezmienne, innym sposobem na to byłoby przekształcenie ciągu w listę, która może być następnie indeksowana i modyfikowana bez żadnych sztuczek związanych z wycinaniem. Jednak, aby przywrócić listę z powrotem do łańcucha, musisz użyć
.join()
pustego ciągu.Nie jestem pewien, jak wypada to na tle wydajności, ale wydaje mi się, że jest to łatwiejsze dla oczu niż inne rozwiązania. ;-)
źródło
Prosta funkcja, aby to osiągnąć:
źródło
Zrobiłem bardzo przydatną metodę dodawania ciągu znaków w określonej pozycji w Pythonie :
na przykład:
będziemy mieli na wyjściu:
źródło
Myślę, że powyższe odpowiedzi są w porządku, ale wyjaśniłbym, że są na nich nieoczekiwane, ale dobre efekty uboczne ...
Jeśli indeks pos_i jest bardzo mały (zbyt ujemny), ciąg wstawiania jest dołączany na początku. Jeśli jest zbyt długi, dołączany jest ciąg wstawiania. Jeśli pos_i znajduje się między -len (string_s) a + len (string_s) - 1, to ciąg wstawiania zostanie wstawiony we właściwe miejsce.
źródło
Python 3.6+ używający f-string:
daje
źródło
Jeśli chcesz mieć wiele wkładek
źródło