删除特定 index-python 的 char

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

我给你打过电话。但很明显,它删除了所有的“0”,我找不到一个函数,将删除位置4的字符为我。

有人能给我点提示吗?

137353 次浏览

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

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

作为旁注,replace不必移动所有的零。如果只想删除第一个指定的 count到1:

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

退出:

'asdasd0'

切片可以工作(并且是首选的方法) ,但是如果需要更多的操作(但是转换成一个列表不会有任何影响) ,只是一种替代方法:

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

另一种选择,使用列表内涵和 join:

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

试试这个代码:

s = input()
a = int(input())
b = s.replace(s[a],'')
print(b)

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

def remove_at(i, s):
return s[:i] + s[i+1:]
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)

从零开始的索引

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