Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Xem thảo luận
Cải thiện bài viết
Lưu bài viết
Đọc
Bàn luận
Đôi khi chúng ta cần điều khiển chuỗi của mình để xóa thêm thông tin khỏi chuỗi để hiểu rõ hơn và xử lý nhanh hơn. Đưa ra một nhiệm vụ trong đó chuỗi con cần phải được loại bỏ khỏi cuối chuỗi bằng Python. & nbsp; & nbsp;
Python3
Tháo phần phụ khỏi cuối chuỗi bằng cách cắt lát
Trong phương pháp này, chúng tôi đang sử dụng cắt chuỗi để loại bỏ chuỗi con từ cuối.
text
=
'GeeksforGeeksWorld'
sub
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg2
Output:
GeeksforGeeks
initial_strings : xbzefdgstb
substring : stb
resultant string xbzefdg
2=
initial_strings : xbzefdgstb
substring : stb
resultant string xbzefdg
4initial_strings : xbzefdgstb
substring : stb
resultant string xbzefdg
5
text
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg8
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg9
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg0
Hủy bỏ chuỗi con khỏi cuối chuỗi bằng phương pháp ngây thơ & nbsp;
Trong phương pháp này, chúng tôi đang sử dụng phương pháp vòng lặp Python và nối tiếp để loại bỏ chuỗi con từ cuối.
Python3
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg3
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg5
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg6
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg8
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg0
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg2
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg3
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg4
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg5
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg6
Output:
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg
Các
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg0
import re
astring = 'this is some string rec'
trailing = ' rec'
def andrew[astring=astring, trailing=trailing]:
regex = r'[.*]%s$' % re.escape[trailing]
return re.sub[regex, r'\1', astring]
def jack0[astring=astring, trailing=trailing]:
if astring.endswith[trailing]:
return astring[:-len[trailing]]
return astring
def jack1[astring=astring, trailing=trailing]:
regex = r'%s$' % re.escape[trailing]
return re.sub[regex, '', astring]
def alex[astring=astring, trailing=trailing]:
thelen = len[trailing]
if astring[-thelen:] == trailing:
return astring[:-thelen]
return astring
7import re
astring = 'this is some string rec'
trailing = ' rec'
def andrew[astring=astring, trailing=trailing]:
regex = r'[.*]%s$' % re.escape[trailing]
return re.sub[regex, r'\1', astring]
def jack0[astring=astring, trailing=trailing]:
if astring.endswith[trailing]:
return astring[:-len[trailing]]
return astring
def jack1[astring=astring, trailing=trailing]:
regex = r'%s$' % re.escape[trailing]
return re.sub[regex, '', astring]
def alex[astring=astring, trailing=trailing]:
thelen = len[trailing]
if astring[-thelen:] == trailing:
return astring[:-thelen]
return astring
8Python3
Xóa chuỗi con khỏi cuối chuỗi bằng phương thức phụ [] & nbsp;
Trong phương pháp này, chúng tôi đang sử dụng phương pháp vòng lặp Python và nối tiếp để loại bỏ chuỗi con từ cuối.
Python3
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg3
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg5
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg6
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg8
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg0
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg2
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg3
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg4
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg5
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg6
Output:
initial_strings : xbzefdgstb
substring : stb
resultant string xbzefdg
1 initial_strings : xbzefdgstb
substring : stb
resultant string xbzefdg
0import re
astring = 'this is some string rec'
trailing = ' rec'
def andrew[astring=astring, trailing=trailing]:
regex = r'[.*]%s$' % re.escape[trailing]
return re.sub[regex, r'\1', astring]
def jack0[astring=astring, trailing=trailing]:
if astring.endswith[trailing]:
return astring[:-len[trailing]]
return astring
def jack1[astring=astring, trailing=trailing]:
regex = r'%s$' % re.escape[trailing]
return re.sub[regex, '', astring]
def alex[astring=astring, trailing=trailing]:
thelen = len[trailing]
if astring[-thelen:] == trailing:
return astring[:-thelen]
return astring
7import re
astring = 'this is some string rec'
trailing = ' rec'
def andrew[astring=astring, trailing=trailing]:
regex = r'[.*]%s$' % re.escape[trailing]
return re.sub[regex, r'\1', astring]
def jack0[astring=astring, trailing=trailing]:
if astring.endswith[trailing]:
return astring[:-len[trailing]]
return astring
def jack1[astring=astring, trailing=trailing]:
regex = r'%s$' % re.escape[trailing]
return re.sub[regex, '', astring]
def alex[astring=astring, trailing=trailing]:
thelen = len[trailing]
if astring[-thelen:] == trailing:
return astring[:-thelen]
return astring
8
import re
astring = 'this is some string rec'
trailing = ' rec'
def andrew[astring=astring, trailing=trailing]:
regex = r'[.*]%s$' % re.escape[trailing]
return re.sub[regex, r'\1', astring]
def jack0[astring=astring, trailing=trailing]:
if astring.endswith[trailing]:
return astring[:-len[trailing]]
return astring
def jack1[astring=astring, trailing=trailing]:
regex = r'%s$' % re.escape[trailing]
return re.sub[regex, '', astring]
def alex[astring=astring, trailing=trailing]:
thelen = len[trailing]
if astring[-thelen:] == trailing:
return astring[:-thelen]
return astring
import re
astring = 'this is some string rec'
trailing = ' rec'
def andrew[astring=astring, trailing=trailing]:
regex = r'[.*]%s$' % re.escape[trailing]
return re.sub[regex, r'\1', astring]
def jack0[astring=astring, trailing=trailing]:
if astring.endswith[trailing]:
return astring[:-len[trailing]]
return astring
def jack1[astring=astring, trailing=trailing]:
regex = r'%s$' % re.escape[trailing]
return re.sub[regex, '', astring]
def alex[astring=astring, trailing=trailing]:
thelen = len[trailing]
if astring[-thelen:] == trailing:
return astring[:-thelen]
return astring
Xóa chuỗi con khỏi cuối chuỗi bằng phương thức phụ [] & nbsp;
Python3
Trong phương pháp này, chúng tôi đang sử dụng phương pháp vòng lặp Python và nối tiếp để loại bỏ chuỗi con từ cuối.
Python3
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg3
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg5
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg6
=
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg8
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg0
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg2
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg3
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg4
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg5
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg6
Output:
initial_strings : xbzefdgstb substring : stb resultant string xbzefdg
Vì bạn phải nhận được sub
5 [trong đó sub
6 là chuỗi bạn muốn xóa nếu nó được kéo dài], tôi khuyên bạn nên tránh sự trùng lặp nhẹ của công việc mà sub
7 sẽ gây ra trong trường hợp này. Tất nhiên, bằng chứng của mã là trong thời gian, vì vậy, hãy thực hiện một số phép đo [đặt tên cho các chức năng sau khi người trả lời đề xuất chúng]:
import re
astring = 'this is some string rec'
trailing = ' rec'
def andrew[astring=astring, trailing=trailing]:
regex = r'[.*]%s$' % re.escape[trailing]
return re.sub[regex, r'\1', astring]
def jack0[astring=astring, trailing=trailing]:
if astring.endswith[trailing]:
return astring[:-len[trailing]]
return astring
def jack1[astring=astring, trailing=trailing]:
regex = r'%s$' % re.escape[trailing]
return re.sub[regex, '', astring]
def alex[astring=astring, trailing=trailing]:
thelen = len[trailing]
if astring[-thelen:] == trailing:
return astring[:-thelen]
return astring
Giả sử chúng tôi đã đặt tên cho tệp Python này sub
8 và nó nằm trong thư mục hiện tại; bây giờ, ...:
$ python2.6 -mtimeit -s'import a' 'a.andrew[]'
100000 loops, best of 3: 19 usec per loop
$ python2.6 -mtimeit -s'import a' 'a.jack0[]'
1000000 loops, best of 3: 0.564 usec per loop
$ python2.6 -mtimeit -s'import a' 'a.jack1[]'
100000 loops, best of 3: 9.83 usec per loop
$ python2.6 -mtimeit -s'import a' 'a.alex[]'
1000000 loops, best of 3: 0.479 usec per loop
Như bạn thấy, các giải pháp dựa trên RE "vô vọng vượt xa" [như thường xảy ra khi một vấn đề "quá mức"-có thể là một trong những lý do Res có một đại diện tồi tệ như vậy trong cộng đồng Python!-], mặc dù đề xuất trong Nhận xét của @Jack tốt hơn so với bản gốc của @Andrew. Các giải pháp dựa trên chuỗi, như mong đợi, shing, với một giải pháp ____ 99 của tôi có lợi thế rất nhỏ so với @jack [chỉ nhanh hơn 15%]. Vì vậy, cả hai ý tưởng chuỗi thuần túy đều tốt [cũng như cả ngắn gọn và rõ ràng]-tôi thích biến thể của mình một chút chỉ vì tôi, theo tính cách, một người thanh đạm [một số người có thể nói, keo kiệt ;-] Người .. . "Không lãng phí, không muốn"!-]