删除特定索引处的char - python

时间:2013-01-07 15:03:48

标签: python

我有一个字符串,里面有两个“0”(str),我只想删除索引4处的“0”(str)

我试过调用.replace但很明显删除了所有“0”,我找不到一个能为我删除第4位字符的函数。

有人暗示我吗?

8 个答案:

答案 0 :(得分:68)

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

newstr = oldstr[:4] + oldstr[5:]

答案 1 :(得分:16)

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

'asd0asd0'.replace('0','',1)

输出:

'asdasd0'

答案 2 :(得分:5)

另一种选择,使用list comprehension和join:

''.join([_str[i] for i in xrange(len(_str)) if i  != 4])

答案 3 :(得分:3)

切片工作(并且是首选方法),但只是需要更多操作的替代方案(但转换到列表不会受到任何影响):

>>> a = '123456789'
>>> b = bytearray(a)
>>> del b[3]
>>> b
bytearray(b'12356789')
>>> str(b)
'12356789'

答案 4 :(得分:3)

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

def remove_at(i, s):
    return s[:i] + s[i+1:]

答案 5 :(得分:1)

rem = lambda x, unwanted : ''.join([ c for i, c in enumerate(x) if i != unwanted])
rem('1230004', 4)
'123004'

答案 6 :(得分:0)

尝试以下代码:

swap(*it1, *it2);

答案 7 :(得分:0)

def remove_char(input_string, index):
    first_part = input_string[:index]
    second_part - input_string[index+1:]
    return first_part + second_part

s = 'aababc'
index = 1
remove_char(s,index)
ababc

从零开始的索引