Подтвердить что ты не робот

Удалите char по определенному индексу - python

У меня есть строка, в которой есть две "0" (str), и я хочу удалить только "0" (str) в индексе 4

Я пробовал звонить .replace, но, очевидно, что удаляет все "0" , и я не могу найти функцию, которая удалит char в позиции 4 для меня.

У кого-нибудь есть подсказка для меня?

4b9b3361

Ответ 1

Использовать срез, перестраивая строку минус индекс, который вы хотите удалить:

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

Ответ 2

как sidenote, replace не нужно перемещать все нули. Если вы просто хотите удалить первый, укажите count в 1:

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

Из:

'asdasd0'

Ответ 3

Другая опция, использующая понимание и объединение списков:

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

Ответ 4

Это мое общее решение для любой строки s и любого индекса i:

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

Ответ 5

Нарезка работает (и является предпочтительным подходом), но просто альтернативой, если требуется больше операций (но тогда преобразование в список не повредит):

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

Ответ 6

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

Ответ 7

Попробуйте этот код:

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

Ответ 8

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

индексация с нуля

Ответ 9

Я новичок в кодировании. Бывает, что я часами пытаюсь найти решение для простого кода, такого как удаление индекса 0 и последнего индекса строки.

Вот мое решение. x = "helloLove"

def removeStr0 & 1 (x): return x [1: -1] на моем spyder дает правильный ответ.