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:
- Sử dụng phương thức
7 để phân chia chuỗi trên dấu phân cách.last_number = last_number[last_number.index['-']+1:]
- Truy cập phần tử danh sách tại Index
8 để có được mọi thứ trước dấu phân cách.last_number = last_number[last_number.index['-']+1:]
- 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:
máy tách biệt | Chia chuỗi thành chuỗi con trên mỗi lần xuất hiện |
MaxSplit | Nhiều nhất 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ố
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.>>> s = 'POS--K 100 100 001 - 1462'
>>> s[s.rindex['-']+1:]
' 1462'
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
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.>>> s = 'POS--K 100 100 001 - 1462'
>>> s[s.rindex['-']+1:]
' 1462'
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:]
0Phươ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:]
1Nế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:]
2Phươ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ử.