Alvaro Joao Alvaro Joao - 5 months ago 14
Python Question

Python best way to remove char from string by index

I'm removing an char from string like this:

S = "abcd"
Index=1 #index of string to remove
ListS = list(S)
ListS.pop(Index)
S = "".join(ListS)
print S
#"acd"


I'm sure that this is not the best way to do it.

EDIT
I didn't mentioned that I need to manipulate a string size with length ~ 10^7.
So it's important to care about efficiency.


Can someone help me. Which pythonic way to do it?

Answer

You can bypass all the list operations with slicing:

S = S[:1] + S[2:]

or more generally

S = S[:Index] + S[Index + 1:]

Many answers to your question (including ones like this) can be found here: How to delete a character from a string using python?. However, that question is nominally about deleting by value, not by index.