【问题标题】:split() vs rsplit() in PythonPython 中的 split() 与 rsplit()
【发布时间】:2022-12-14 11:39:05
【问题描述】:

我使用了split()rsplit(),如下所示:

test = "1-2-3-4-5"

print(test.split("-")) # Here
print(test.rsplit("-")) # Here

但是,我得到了如下所示的相同结果:

['1', '2', '3', '4', '5'] # split()
['1', '2', '3', '4', '5'] # rsplit()

那么,split()rsplit() 有什么区别?

【问题讨论】:

    标签: python python-3.x function split difference


    【解决方案1】:
    • split() 可以从中选择字符串中的位置前方划分。
    • rsplit() 可以从中选择字符串中的位置背部划分。
    test = "1-2-3-4-5"
    
    print(test.split("-", 2)) # Here
    print(test.rsplit("-", 2)) # Here
    

    输出:

    ['1', '2', '3-4-5'] # split()
    ['1-2-3', '4', '5'] # rsplit()
    

    另外,如果split()rsplit()没有参数,如下所示:

    test = "1 2  3   4    5"
    
    print(test.split()) # No arguments
    print(test.rsplit()) # No arguments
    

    他们可以将字符串除以一个或多个空格,如下所示:

    ['1', '2', '3', '4', '5'] # split()
    ['1', '2', '3', '4', '5'] # rsplit()
    

    并且,除了str类型之外的其他类型没有split()rsplit(),如下所示:

    test = ["12345"] # Doesn't have split()
    
    print(test.split())
    

    AttributeError: 'list' 对象没有属性 'split'

    test = 12345 # Doesn't have rsplit()
    
    print(test.rsplit()) 
    

    AttributeError: 'int' 对象没有属性 'rsplit'

    【讨论】:

    • 随便哪种可以有一个split方法,它可以做一些与str.split完全不同的事情。您答案的最后一部分与splitrsplit 之间的区别并不真正相关。
    猜你喜欢
    • 2014-02-01
    • 2011-11-22
    • 2011-07-09
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 2020-07-13
    • 1970-01-01
    相关资源
    最近更新 更多