2013-01-07 30 views
21

Tôi có một chuỗi có hai "0" (str) trong đó và tôi muốn chỉ xóa "0" (str) tại chỉ số 4Xóa char tại chỉ mục cụ thể - python

Tôi đã thử gọi. thay thế nhưng rõ ràng là loại bỏ tất cả "0", và tôi không thể tìm thấy một chức năng mà sẽ loại bỏ các char ở vị trí 4 cho tôi.

Có ai có gợi ý cho tôi không?

Trả lời

35

Sử dụng cắt, xây dựng lại chuỗi trừ chỉ số bạn muốn loại bỏ:

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

Đây là những gì tôi đã sử dụng và nó hoạt động hoàn hảo! – tgunn

12

như một sidenote, replace không cần phải di chuyển tất cả số không. Nếu bạn chỉ muốn loại bỏ người đầu tiên xác định count-1:

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

Out:

'asdasd0'

+3

Nếu bạn muốn thay thế '0' tại chỉ mục' 7' thì sao? –

1

Cắt lát làm việc (và là phương pháp ưa thích), nhưng chỉ cần một sự thay thế nếu có nhiều hoạt động là cần thiết (nhưng sau đó chuyển đổi thành danh sách sẽ không bị tổn thương dù sao):

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

Một tùy chọn khác, sử dụng danh sách hiểu và tham gia:

''.join([_str[i] for i in xrange(len(_str)) if i != 4]) 
Các vấn đề liên quan