Hướng dẫn python remove everything after last occurrence of character - python xóa mọi thứ sau lần xuất hiện cuối cùng của ký tự

25

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi đã thấy điều này được hỏi bằng các ngôn ngữ khác nhưng không thể tìm thấy nó cho Python, có lẽ nó có một cái tên cụ thể mà tôi không biết. Tôi muốn chia một dòng sau lần xuất hiện cuối cùng của ký tự '-', chuỗi của tôi sẽ trông giống như sau:

POS--K    100    100    001    -    1462

Tôi muốn lấy số cuối cùng từ chuỗi này sau lần cuối cùng -, trong trường hợp này là 1462. Tôi không biết làm thế nào để đạt được điều này, để đạt được điều này khi chỉ có một ký tự như vậy được mong đợi, tôi sẽ sử dụng như sau:

last_number = last_number[last_number.index['-']+1:]

Làm thế nào tôi có thể đạt được điều này khi một số không xác định - có thể có mặt và số cuối có thể có độ dài?

Đã hỏi ngày 14 tháng 1 năm 2015 lúc 11:41Jan 14, 2015 at 11:41

1

Bạn gần như ở đó.

last_number = last_number[last_number.index['-']+1:]
3 chọn từ bên trái và
last_number = last_number[last_number.index['-']+1:]
4 chọn từ bên phải:

>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'

Đã trả lời ngày 14 tháng 1 năm 2015 lúc 11:43Jan 14, 2015 at 11:43

Burhan Khalidburhan KhalidBurhan Khalid

165K18 Huy hiệu vàng238 Huy hiệu bạc276 Huy hiệu Đồng18 gold badges238 silver badges276 bronze badges

2

Bạn có thể làm điều này nếu bạn muốn số cuối cùng sau lần cuối cùng

last_number = last_number[last_number.index['-']+1:]
5

>>> s = "POS--K    100    100    001    -    1462"
>>> a = s.split['-'][-1]
>>> a
'    1462'
>>> a.strip[]
'1462'

Hoặc như Padraic đã đề cập trong một bình luận, bạn có thể sử dụng

last_number = last_number[last_number.index['-']+1:]
6

>>> s = "POS--K    100    100    001    -    1462"
>>> a = s.rsplit['-',1][1]
>>> a
'    1462'
>>> a.strip[]
'1462'

Tuy nhiên, giải pháp RSplit sẽ không hoạt động nếu không có sự xuất hiện của nhân vật, vì sau đó sẽ chỉ có một yếu tố trong mảng được trả về.

Jakebeal

2052 Huy hiệu bạc17 Huy hiệu đồng2 silver badges17 bronze badges

Đã trả lời ngày 14 tháng 1 năm 2015 lúc 11:43Jan 14, 2015 at 11:43

Burhan Khalidburhan KhalidBhargav Rao

165K18 Huy hiệu vàng238 Huy hiệu bạc276 Huy hiệu Đồng27 gold badges122 silver badges137 bronze badges

1

Xóa mọi thứ sau một ký tự trong một chuỗi trong Python #

Để xóa mọi thứ sau một ký tự trong một chuỗi:

  1. Sử dụng phương thức
    last_number = last_number[last_number.index['-']+1:]
    
    7 để phân chia chuỗi trên dấu phân cách.
  2. Truy cập phần tử danh sách tại Index
    last_number = last_number[last_number.index['-']+1:]
    
    8 để có được mọi thứ trước dấu phân cách.
  3. Tùy chọn, sử dụng toán tử bổ sung [+] để thêm dấu phân cách.

Copied!

my_str = 'one!two!three' # ✅ remove everything after FIRST occurrence of character separator = '!' result_1 = my_str.split[separator, 1][0] print[result_1] # 👉️ 'one' # --------------------------------------------------------- # ✅ remove everything after LAST occurrence of character result_2 = my_str.rsplit[separator, 1][0] print[result_2] # 👉️ 'one!two' # --------------------------------------------------------- # ✅ remove everything after character, keeping separator result_3 = my_str.split[separator, 1][0] + separator print[result_3] # 👉️ 'one!'

Chúng tôi đã sử dụng phương thức

last_number = last_number[last_number.index['-']+1:]
7 để xóa mọi thứ sau một ký tự [
>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
0 trong các ví dụ].

Phương thức str.split [] chia chuỗi thành một danh sách các chuỗi con bằng cách sử dụng dấu phân cách.

Phương thức lấy 2 tham số sau:

TênSự mô tả
máy tách biệtChia chuỗi thành chuỗi con trên mỗi lần xuất hiện
MaxSplitNhiều nhất
>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
1 chia tách được thực hiện [tùy chọn]

Nếu bộ phân cách không được tìm thấy trong chuỗi, một danh sách chỉ chứa 1 phần tử được trả về.

Chúng tôi đặt đối số

>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
1 thành
>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
3 vì chúng tôi chỉ cần chia chuỗi một lần.

Ví dụ đầu tiên loại bỏ mọi thứ sau lần xuất hiện đầu tiên của ký tự trong chuỗi.

Copied!

my_str = 'one!two!three' # ✅ remove everything after FIRST occurrence of character separator = '!' result_1 = my_str.split[separator, 1][0] print[result_1] # 👉️ 'one' # 👇️ ['one', 'two!three'] print[my_str.split[separator, 1]]

Lưu ý rằng bộ phân cách không được bao gồm trong chuỗi. Nếu bạn cần bao gồm nó, hãy sử dụng toán tử bổ sung [+].

Copied!

my_str = 'one!two!three' # ✅ remove everything after character, keeping separator separator = '!' result_1 = my_str.split[separator, 1][0] + separator print[result_1] # 👉️ 'one!'

Toán tử bổ sung [+] có thể được sử dụng để nối các chuỗi trong Python.

Nếu bạn cần xóa mọi thứ sau lần xuất hiện cuối cùng của ký tự trong chuỗi, hãy sử dụng phương thức

>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
4.

Copied!

my_str = 'one!two!three' separator = '!' # ✅ remove everything after LAST occurrence of character result_2 = my_str.rsplit[separator, 1][0] print[result_2] # 👉️ 'one!two'

Ngoại trừ việc chia tách từ bên phải,

>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
5 hoạt động như
>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
6.

Phương thức

>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
4 chia chuỗi từ bên phải và với
>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
1 được đặt thành
>>> s = 'POS--K    100    100    001    -    1462'
>>> s[s.rindex['-']+1:]
'    1462'
3, nó chỉ chia tách một lần.

Nếu bạn cần bao gồm ký tự bạn chia tay, hãy sử dụng toán tử bổ sung [+].

Copied!

my_str = 'one!two!three' separator = '!' result_2 = my_str.rsplit[separator, 1][0] + separator print[result_2] # 👉️ 'one!two!'

Bạn cũng có thể sử dụng phương thức

>>> s = "POS--K    100    100    001    -    1462"
>>> a = s.split['-'][-1]
>>> a
'    1462'
>>> a.strip[]
'1462'
0 để xóa mọi thứ sau một ký tự cụ thể trong một chuỗi.

last_number = last_number[last_number.index['-']+1:]
0

Phương thức str.partition phân tách chuỗi ở lần xuất hiện đầu tiên của bộ phân cách được cung cấp.

Phương thức trả về một tuple chứa 3 phần tử - phần trước dấu phân cách, bộ phân cách và phần sau khi phân tách.

last_number = last_number[last_number.index['-']+1:]
1

Nếu bộ phân tách không được tìm thấy trong chuỗi, phương thức trả về một tuple chứa chuỗi, theo sau là 2 chuỗi trống.

Nếu bạn cần đưa bộ phân cách vào kết quả, hãy sử dụng phương thức

>>> s = "POS--K    100    100    001    -    1462"
>>> a = s.split['-'][-1]
>>> a
'    1462'
>>> a.strip[]
'1462'
1 để tham gia các mục danh sách thứ nhất và thứ hai.

last_number = last_number[last_number.index['-']+1:]
2

Phương thức str.join lấy một điều đáng tin cậy như một đối số và trả về một chuỗi là sự kết hợp của các chuỗi trong điều kiện có thể sử dụng được.

Chuỗi phương thức được gọi là bật được sử dụng làm phân tách giữa các phần tử.

Làm thế nào để bạn xóa mọi thứ sau một nhân vật cụ thể trong Python?

Để loại bỏ mọi thứ sau một ký tự trong một chuỗi:..
Sử dụng str. phương thức chia [] để chia chuỗi trên dấu phân cách ..
Truy cập phần tử danh sách tại Index 0 để nhận mọi thứ trước khi phân tách ..
Tùy chọn, sử dụng toán tử bổ sung [+] để thêm dấu phân cách ..

Làm thế nào để bạn xóa văn bản sau một nhân vật trong Python?

Sử dụng str.split [] để xóa mọi thứ sau một ký tự trong chuỗi. Sử dụng str. Chia [SEP, MAXSplit] với MaxSplit là 1 để chia chuỗi ở lần xuất hiện đầu tiên của SEP thành một danh sách. split[] to remove everything after a character in a string. Use str. split[sep, maxsplit] with maxsplit as 1 to split the string at the first occurrence of sep into a list.

Làm cách nào để xóa tất cả các ký tự khỏi một chuỗi sau một ký tự cụ thể?

Để xóa mọi thứ sau một ký tự cụ thể trong một chuỗi: sử dụng phương thức chuỗi.split [] để phân chia chuỗi trên ký tự.Truy cập mảng tại chỉ mục 0.Phần tử đầu tiên trong mảng sẽ là một phần của chuỗi trước ký tự được chỉ định.Use the String. split[] method to split the string on the character. Access the array at index 0 . The first element in the array will be the part of the string before the specified character.

Làm cách nào để loại bỏ thể hiện cuối cùng của một nhân vật trong Python?

rstrip.Phương thức chuỗi Rstrip loại bỏ các ký tự khỏi phía bên phải của chuỗi được cung cấp cho nó.Vì vậy, chúng ta có thể sử dụng nó để loại bỏ phần tử cuối cùng của chuỗi.Chúng tôi không phải viết nhiều hơn một dòng mã để xóa char cuối cùng khỏi chuỗi.The string method rstrip removes the characters from the right side of the string that is given to it. So, we can use it to remove the last element of the string. We don't have to write more than a line of code to remove the last char from the string.

Bài Viết Liên Quan

Chủ Đề