私はこのような文字列から文字を削除しています:
S = "abcd"
Index=1 #index of string to remove
ListS = list(S)
ListS.pop(Index)
S = "".join(ListS)
print S
#"acd"
これがnotであると確信しています。
[〜#〜] edit [〜#〜]長さ10 ^ 7の文字列サイズを操作する必要があることは言及しませんでした。そのため、効率に注意することが重要です。
誰かが私を助けることができます。それを行うためのPythonの方法はどれですか?
スライシングを使用して、すべてのリスト操作をバイパスできます。
S = S[:1] + S[2:]
またはより一般的に
S = S[:Index] + S[Index + 1:]
あなたの質問に対する多くの答え(このようなものを含む)はここにあります: pythonを使用して文字列から文字を削除する方法? 。ただし、その質問は名目上、インデックスではなく値による削除に関するものです。
スライスは、私が考えることができる最良かつ最も簡単なアプローチです。他のいくつかの選択肢があります:
>>> s = 'abcd'
>>> def remove(s, indx):
return ''.join(x for x in s if s.index(x) != indx)
>>> remove(s, 1)
'acd'
>>>
>>>
>>> def remove(s, indx):
return ''.join(filter(lambda x: s.index(x) != 1, s))
>>> remove(s, 1)
'acd'
インデックスはゼロベースであることを忘れないでください。
インデックス文字を「」に置き換えることができます。
str = "ab1cd1ef"
Index = 3
print(str.replace(str[Index],"",1))