Câu trả lời:
trăn 2.x
s = ":dfa:sif:e"
print s[1:]
trăn 3.x
s = ":dfa:sif:e"
print(s[1:])
cả hai bản in
dfa:sif:e
Vấn đề của bạn có vẻ không rõ ràng. Bạn nói rằng bạn muốn xóa "một ký tự từ một vị trí nhất định", sau đó tiếp tục nói rằng bạn muốn xóa một ký tự cụ thể.
Nếu bạn chỉ cần xóa ký tự đầu tiên, bạn sẽ làm:
s = ":dfa:sif:e"
fixed = s[1:]
Nếu bạn muốn xóa một ký tự ở một vị trí cụ thể, bạn sẽ làm:
s = ":dfa:sif:e"
fixed = s[0:pos]+s[pos+1:]
Nếu bạn cần xóa một ký tự cụ thể, hãy nói ':', lần đầu tiên nó gặp chuỗi trong một chuỗi thì bạn sẽ làm:
s = ":dfa:sif:e"
fixed = ''.join(s.split(':', 1))
s.replace(":", "", 1)
-
Tùy thuộc vào cấu trúc của chuỗi, bạn có thể sử dụng lstrip
:
str = str.lstrip(':')
Nhưng điều này sẽ loại bỏ tất cả các dấu hai chấm lúc đầu, tức là nếu bạn có ::foo
, kết quả sẽ là foo
. Nhưng chức năng này rất hữu ích nếu bạn cũng có các chuỗi không bắt đầu bằng dấu hai chấm và sau đó bạn không muốn xóa ký tự đầu tiên.
xóa một char:
def del_char(string, indexes):
'deletes all the indexes from the string and returns the new one'
return ''.join((char for idx, char in enumerate(string) if idx not in indexes))
nó xóa tất cả các ký tự trong chỉ mục; bạn có thể sử dụng nó trong trường hợp của bạn vớidel_char(your_string, [0])