Hướng dẫn how do i remove the last 3 characters from a string in python? - làm cách nào để xóa 3 ký tự cuối cùng khỏi chuỗi trong python?

Tôi đang cố gắng loại bỏ 3 ký tự cuối cùng khỏi một chuỗi trong Python, tôi không biết những nhân vật này là gì để tôi không thể sử dụng

BS1 1AB
bs11ab
BS111ab
6, tôi cũng cần loại bỏ bất kỳ không gian trắng nào và chuyển đổi thành trường hợp trên.

Một ví dụ sẽ là:

foo = "Bs12 3ab"
foo.replace[" ", ""].rstrip[foo[-3:]].upper[]

Điều này hoạt động và cho tôi

BS1 1AB
bs11ab
BS111ab
7, đó là những gì tôi muốn, tuy nhiên nếu các ký tự thứ 4 & 3 cuối cùng là giống nhau, tôi mất cả hai, ví dụ: Nếu
BS1 1AB
bs11ab
BS111ab
8 tôi chỉ nhận được
BS1 1AB
bs11ab
BS111ab
9.

Ví dụ về

foo = ''.join[foo.split[]]
0 có thể là:

BS1 1AB
bs11ab
BS111ab

Chuỗi có thể là 6 hoặc 7 ký tự và tôi cần bỏ 3 lần cuối cùng [giả sử không có khoảng trắng].

mkrieger1

16.1k4 Huy hiệu vàng50 Huy hiệu bạc58 Huy hiệu đồng4 gold badges50 silver badges58 bronze badges

Đã hỏi ngày 25 tháng 11 năm 2009 lúc 17:14Nov 25, 2009 at 17:14

2

Loại bỏ bất kỳ và tất cả khoảng trắng:

foo = ''.join[foo.split[]]

Xóa ba ký tự cuối cùng:

foo = foo[:-3]

Chuyển đổi sang chữ in hoa:

foo = foo.upper[]

Tất cả mã đó trong một dòng:

foo = ''.join[foo.split[]][:-3].upper[]

Đã trả lời ngày 25 tháng 11 năm 2009 lúc 17:23Nov 25, 2009 at 17:23

Noctis Skytowernoctis SkytowerNoctis Skytower

20.8K16 Huy hiệu vàng80 Huy hiệu bạc114 Huy hiệu đồng16 gold badges80 silver badges114 bronze badges

1

Nó không hoạt động như bạn mong đợi vì dải dựa trên nhân vật. Bạn cần phải làm điều này thay thế:

foo = foo.replace[' ', ''][:-3].upper[]

Đã trả lời ngày 25 tháng 11 năm 2009 lúc 17:17Nov 25, 2009 at 17:17

Nadia Alramlinadia AlramliNadia Alramli

108K35 Huy hiệu vàng170 Huy hiệu bạc151 Huy hiệu đồng35 gold badges170 silver badges151 bronze badges

1

>>> foo = "Bs12 3ab"
>>> foo[:-3]
'Bs12 '
>>> foo[:-3].strip[]
'Bs12'
>>> foo[:-3].strip[].replace[" ",""]
'Bs12'
>>> foo[:-3].strip[].replace[" ",""].upper[]
'BS12'

Đã trả lời ngày 26 tháng 11 năm 2009 lúc 1:15Nov 26, 2009 at 1:15

ghostdog74ghostdog74ghostdog74

316K56 Huy hiệu vàng254 Huy hiệu bạc341 Huy hiệu Đồng56 gold badges254 silver badges341 bronze badges

2

Bạn có thể bị hiểu lầm một chút, nó không phải là một chuỗi mà là bất kỳ ký tự nào trong chuỗi bạn chỉ định.

Như thế này:

>>> text = "xxxxcbaabc"
>>> text.rstrip["abc"]
'xxxx'

Vì vậy, thay vào đó, chỉ cần sử dụng

text = text[:-3] 

[sau khi thay thế khoảng trắng không có gì]

Đã trả lời ngày 25 tháng 11 năm 2009 lúc 17:22Nov 25, 2009 at 17:22

Mattias Nilssonmattias NilssonMattias Nilsson

3,5841 Huy hiệu vàng23 Huy hiệu bạc29 Huy hiệu đồng1 gold badge23 silver badges29 bronze badges

BS1 1AB
bs11ab
BS111ab
0

Đã trả lời ngày 25 tháng 11 năm 2009 lúc 17:18Nov 25, 2009 at 17:18

SilentghostsilentghostSilentGhost

296K64 Huy hiệu vàng302 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges302 silver badges291 bronze badges

Tôi cố gắng tránh các biểu thức thường xuyên, nhưng điều này có vẻ hoạt động:

foo = ''.join[foo.split[]]
1

Đã trả lời ngày 25 tháng 11 năm 2009 lúc 17:29Nov 25, 2009 at 17:29

krs1krs1krs1

1.1157 huy hiệu bạc16 Huy hiệu đồng7 silver badges16 bronze badges

2

  1. foo = ''.join[foo.split[]]
    
    2
  2. foo = ''.join[foo.split[]]
    
    3
  3. foo = ''.join[foo.split[]]
    
    4

Đây là một bài tập luyện tốt cho người mới bắt đầu và thật dễ dàng để đạt được.

Một phương pháp nâng cao khác là một hàm như thế này:

BS1 1AB
bs11ab
BS111ab
1

Và đối với câu hỏi này, bạn chỉ muốn xóa các ký tự cuối cùng, vì vậy bạn có thể viết như thế này:

BS1 1AB
bs11ab
BS111ab
2

Tôi nghĩ rằng bạn đã kết thúc để quan tâm đến ba nhân vật đó là gì, vì vậy bạn đã thua. Bạn chỉ muốn loại bỏ ba người cuối cùng, tuy nhiên họ là ai!

Nếu bạn muốn xóa một số ký tự cụ thể, bạn có thể thêm một số phán đoán:

BS1 1AB
bs11ab
BS111ab
3

Đã trả lời ngày 28 tháng 11 năm 2018 lúc 1:50Nov 28, 2018 at 1:50

Có gì sai với điều này?

BS1 1AB
bs11ab
BS111ab
4

Đã trả lời ngày 25 tháng 11 năm 2009 lúc 17:18Nov 25, 2009 at 17:18

Silentghostsilentghostabyx

296K64 Huy hiệu vàng302 Huy hiệu bạc291 Huy hiệu Đồng18 gold badges91 silver badges116 bronze badges

Tôi cố gắng tránh các biểu thức thường xuyên, nhưng điều này có vẻ hoạt động:

Đã trả lời ngày 25 tháng 11 năm 2009 lúc 17:29Nov 25, 2009 at 17:26

1.1157 huy hiệu bạc16 Huy hiệu đồngAndreaG

Đây là một bài tập luyện tốt cho người mới bắt đầu và thật dễ dàng để đạt được.2 gold badges12 silver badges27 bronze badges

1

Một phương pháp nâng cao khác là một hàm như thế này:

BS1 1AB
bs11ab
BS111ab
5

Và đối với câu hỏi này, bạn chỉ muốn xóa các ký tự cuối cùng, vì vậy bạn có thể viết như thế này:Nov 25, 2009 at 17:33

Bài Viết Liên Quan

Chủ Đề