我有一个包含两个“0”(str)的字符串,我只想删除索引4处的“0”(str)
我给你打过电话。但很明显,它删除了所有的“0”,我找不到一个函数,将删除位置4的字符为我。
有人能给我点提示吗?
使用切片,重新生成减去要删除的索引的字符串:
newstr = oldstr[:4] + oldstr[5:]
作为旁注,replace不必移动所有的零。如果只想删除第一个指定的 count到1:
replace
count
'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的通用解决方案:
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'