我有一个字符串,里面有两个“0”(str),我只想删除索引4处的“0”(str)
我试过调用.replace但很明显删除了所有“0”,我找不到一个能为我删除第4位字符的函数。
有人暗示我吗?
答案 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
从零开始的索引