Alv*_*oao 12 python string substring python-2.7 python-3.x
我正在从字符串中删除一个字符,如下所示:
S = "abcd"
Index=1 #index of string to remove
ListS = list(S)
ListS.pop(Index)
S = "".join(ListS)
print S
#"acd"
Run Code Online (Sandbox Code Playgroud)
我确信这不是最好的方法.
编辑 我没有提到我需要操纵长度为~10 ^ 7的字符串大小.所以关心效率很重要.
有人能帮我吗.哪种pythonic方式呢?
Mad*_*ist 28
您可以使用切片绕过所有列表操作:
S = S[:1] + S[2:]
Run Code Online (Sandbox Code Playgroud)
或更一般地说
S = S[:Index] + S[Index + 1:]
Run Code Online (Sandbox Code Playgroud)
您可以在此处找到许多问题的答案(包括此类问题):如何使用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'
Run Code Online (Sandbox Code Playgroud)
请记住,索引是从零开始的。
您可以将索引字符替换为“”。
str = "ab1cd1ef"
Index = 3
print(str.replace(str[Index],"",1))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
42850 次 |
最近记录: |