Xóa ký tự x đầu tiên khỏi chuỗi?


116

Làm cách nào để xóa các ký tự x đầu tiên khỏi một chuỗi? Ví dụ, nếu một người có một chuỗi lipsum, làm thế nào họ sẽ loại bỏ 3 ký tự đầu tiên và nhận được kết quả là sum?


5
ví dụ tốt hơn nếu số ký tự bị xóa không bằng số ký tự còn lại. ví dụ"lipsumm"[3:] == "summ"
Scott Pelak

Câu trả lời:


213
>>> text = 'lipsum'
>>> text[3:]
'sum'

Xem tài liệu chính thức về chuỗi để biết thêm thông tin và câu trả lời SO này để có bản tóm tắt ngắn gọn về ký hiệu.


16

Một cách khác (tùy thuộc vào nhu cầu thực tế của bạn): Nếu bạn muốn bật n ký tự đầu tiên và lưu cả ký tự đã bật và chuỗi đã sửa đổi:

s = 'lipsum'
n = 3
a, s = s[:n], s[n:]
print(a)
# lip
print(s)
# sum

3
Tôi đoán nó ẩn dụ "popped" nhưng thực chất chỉ là 2 lát khác nhau của nó, không có thực popping
jamylak

9
>>> x = 'lipsum'
>>> x.replace(x[:3], '')
'sum'

11
Lưu ý rằng điều này dài hơn trong mã và cũng sẽ mất nhiều thời gian hơn vì bạn phải tìm kiếm chuỗi con trước khi thay thế nó. Ngoài ra: >>> x = 'liplip' >>> x.replace(x[:3], '') ''. Chắc chắn bạn có thể khắc phục điều này bằng cách đặt tham số thứ ba (count) = 1 nhưng sẽ mất nhiều thời gian hơn.
jamylak

nah nó liên quan đến câu trả lời của bạn nên nó thuộc về đây. Bạn có thể thêm count = 1 như của bạn để nó vẫn hoạt động btw
jamylak

4

Sử dụng del.

Thí dụ:

>>> text = 'lipsum'
>>> l = list(text)
>>> del l[3:]
>>> ''.join(l)
'sum'

1
Điều này không hoạt động như bạn nghĩ text = 'liplip' >>> text.lstrip(text[:3]) ''vì đối với một Đối số ký tự không phải là tiền tố; đúng hơn, tất cả các kết hợp giá trị của nó đều bị tước bỏ:str.lstrip([chars])
jamylak

@jamylak Tôi đã chỉnh sửa
U10-Forward

1
Không có giải pháp nào hoạt động, ví dụ: cho 'liplip'. Trong cái thứ haiTypeError: 'str' object does not support item deletion
jamylak

@jamylak Đã chỉnh sửa lại
U10-Forward

@jamylak có hoạt động không, bây giờ, nếu có bạn cần phải downvote?
U10-Chuyển tiếp

2

Ví dụ để hiển thị 3 số cuối của số tài khoản.

x = '1234567890'   
x.replace(x[:7], '')

o/p: '890'

Điều này có vấn đề tương tự như các câu trả lời bằng tkbx
jamylak

ví dụ. >>> x = '12345678901234567890' >>> x.replace(x[:7], 'xxxxxxx') 'xxxxxxx890xxxxxxx890'
jamylak

Ngoài ra này thậm chí không trả lời các câu hỏi, bạn đang thay thế các ký tự có xs thay vì xóa chúng
jamylak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.