Xóa ký tự cuối cùng khỏi chuỗi


510

Giả sử chuỗi của tôi dài 10 ký tự.

Làm cách nào để xóa ký tự cuối cùng?

Nếu chuỗi của tôi là "abcdefghij"(Tôi không muốn thay thế 'j'ký tự, vì chuỗi của tôi có thể chứa nhiều 'j'ký tự) Tôi chỉ muốn ký tự cuối cùng biến mất. Bất kể đó là gì hoặc bao nhiêu lần xảy ra, tôi cần xóa ký tự cuối cùng khỏi chuỗi của mình.


Câu trả lời:


834

Đơn giản:

st =  "abcdefghij"
st = st[:-1]

Ngoài ra còn có một cách khác cho thấy cách nó được thực hiện với các bước:

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

Đây cũng là một cách với đầu vào của người dùng:

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

Để làm cho nó lấy đi từ cuối cùng trong danh sách:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)

3
Phải, st[-1]chỉ là nhân vật cuối cùng củast
Cyrille 18/03/13

5
Trên thực tế, lát đó vẫn sẽ hoạt động ngay cả khi sttrống. Chà, nó sẽ trả về một chuỗi rỗng, nhưng bạn sẽ không gặp lỗi.
kindall

1
Điều gì nếu bạn có một danh sách các từ và bạn muốn xóa ký tự cuối cùng của mỗi từ? [xanh dương, đỏ, xanh lục] => [blu, re, gree]?
Jellyse

5
[i[:-1] for i in ['blue','red','green']]
Cyrille

3
Nhìn vào ví dụ, nó là giá trị đề cập rằng danh sách là có thể thay đổi và rằng list.pop()phương pháp là con đường để đi khi giao dịch với các danh sách, vì nó loại bỏ mục cuối cùng tại chỗ O(1), trong khi [:-1]cắt tạo ra một bản sao của một danh sách mà không có yếu tố cuối cùng trong O(n-1)thời gian cộng với O(n-1)không gian. Chuỗi là bất biến - vì vậy không có gì để thêm.
Dmitry

19

Những gì bạn đang cố gắng làm là một phần mở rộng của chuỗi cắt trong Python:

Giả sử tất cả các chuỗi có độ dài 10, char cuối cùng sẽ bị xóa:

>>> st[:9]
'abcdefghi'

Để xóa các Nký tự cuối cùng :

>>> N = 3
>>> st[:-N]
'abcdefg'
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.