删除特定索引处的char - python

tgu*_*unn 46 python

我有一个字符串,其中有两个"0"(str),我想只删除索引4处的"0"(str)

我试过调用.replace,但显然删除了所有"0",我找不到一个函数来删除位置4的char给我.

有人暗示我吗?

Mar*_*ers 78

使用切片,重建字符串减去要删除的索引:

newstr = oldstr[:4] + oldstr[5:]
Run Code Online (Sandbox Code Playgroud)


roo*_*oot 19

作为旁注,replace不必全部移动零.如果您只想将第一个指定删除count为1:

'asd0asd0'.replace('0','',1)
Run Code Online (Sandbox Code Playgroud)

日期:

'asdasd0'

  • 如果你想只更换索引'7`的`0`怎么办? (5认同)

Âng*_*tto 7

这是我对任何字符串s和任何索引的通用解决方案 i

def remove_at(i, s):
    return s[:i] + s[i+1:]
Run Code Online (Sandbox Code Playgroud)


Jon*_*nts 5

切片有效(并且是首选方法),但如果需要更多操作,则只是一种替代方法(但无论如何转换为列表都不会受到伤害):

>>> a = '123456789'
>>> b = bytearray(a)
>>> del b[3]
>>> b
bytearray(b'12356789')
>>> str(b)
'12356789'
Run Code Online (Sandbox Code Playgroud)


mcl*_*fee 5

另一种选择,使用列表理解和联接:

''.join([_str[i] for i in xrange(len(_str)) if i  != 4])
Run Code Online (Sandbox Code Playgroud)