Hướng dẫn python remove substring from end - python xóa chuỗi con khỏi kết thúc

Xem thảo luận

Show

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • 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 xbzefdg
    1

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    2

    Output:

    GeeksforGeeks

    initial_strings : xbzefdgstb substring : stb resultant string xbzefdg2= initial_strings : xbzefdgstb substring : stb resultant string xbzefdg4initial_strings : xbzefdgstb substring : stb resultant string xbzefdg5 

    text =

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    8
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    9
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    0

    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 xbzefdg
    3=
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    5

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    6=
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    8

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    0
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    2
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    3
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    4

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    5
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    6

    Output:

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg

    Các 

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    0
    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
    
    7
    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
    
    8

    Python3

    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 xbzefdg
    3=
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    5

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    6=
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    8

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    0
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    2
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    3
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    4

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    5
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    6

    Output:

    Các

    initial_strings : xbzefdgstb substring : stb resultant string xbzefdg1 initial_strings : xbzefdgstb substring : stb resultant string xbzefdg0import 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 

    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 xbzefdg
    3=
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    5

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    6=
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    8

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    0
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    1
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    2
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    3
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    4

    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    5
    initial_strings :  xbzefdgstb 
    substring :  stb
    resultant string xbzefdg
    6

    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"!-)

    Làm cách nào để loại bỏ một chuỗi con từ cuối chuỗi trong Python?

    Đưa ra dưới đây là một vài phương pháp để giải quyết nhiệm vụ đã cho ...
    Phương pháp số 1: Sử dụng phương pháp ngây thơ ..
    Phương pháp số 2: Sử dụng phương thức Sub () ..
    Phương thức số 3: Sử dụng phương thức thay thế () ..

    Làm thế nào để bạn loại bỏ mọi thứ từ cuối chuỗi?

    Có bốn cách để loại bỏ ký tự cuối cùng khỏi một chuỗi:..
    Sử dụng StringBuffer.Lớp Deletecahrat () ..
    Sử dụng chuỗi.Phương thức chuỗi con () ..
    Sử dụng StringUtils.Phương thức Chop () ..
    Sử dụng biểu thức chính quy ..

    Làm cách nào để loại bỏ 3 ký tự cuối cùng khỏi một chuỗi trong Python?

    Trong Python, chúng ta cũng có thể chọn các ký tự trong một chuỗi bằng cách sử dụng lập chỉ mục âm.Ký tự cuối cùng trong chuỗi có index -1 và nó sẽ tiếp tục giảm cho đến khi chúng ta đến đầu chuỗi.Vì vậy, để xóa 3 ký tự cuối cùng khỏi một chuỗi chọn ký tự từ 0 I.E. đến -3, tức là.select character from 0 i.e. to -3 i.e.

    Làm cách nào để loại bỏ một hậu tố trong Python?

    Hãy thảo luận về những cách nhất định mà nhiệm vụ này có thể được thực hiện ...
    Phương thức số 1: Sử dụng LOOP + Remove () + EndSwith () Phương thức ..
    Phương pháp số 2: Sử dụng danh sách hiểu + endswith () Phương thức ..
    Phương thức số 3: Sử dụng hàm bộ lọc + endswith () Phương thức ..