2013-01-07 17 views
21

Mam ciąg znaków, który ma dwa „0” (STR) w nim i chcę usunąć tylko „0” (STR) w indeksie 4Usuń char w określonym indeksie - pyton

Próbowałem dzwonić. zastępuję, ale oczywiście, że usuwa wszystkie "0" i nie mogę znaleźć funkcji, która usunie znak na pozycji 4 dla mnie.

Ktoś ma dla mnie wskazówkę?

Odpowiedz

35

Zastosowanie krojenie, przebudowa ciąg minus indeks chcesz usunąć:

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

To jest to, czego użyłem i działało idealnie! – tgunn

12

jak sidenote, replace nie musi przenieść wszystkie zera. Jeśli chcesz tylko usunąć najpierw określić count do 1:

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

Out:

'asdasd0'

+3

Co jeśli chcesz zastąpić '0' w indeksie' 7'? –

1

Odcinanie działa (i jest preferowanym podejściem), ale tylko alternatywą, jeśli potrzebne są dalsze operacje (ale potem konwersja do listy nie zaszkodzi tak):

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

Inną opcją, używając listowych i dołącz:

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