在Python字符串的最后一个分隔符上分割?

发布于 2021-01-29 19:22:13

对于在字符串中 最后一次 出现定界符时拆分字符串的建议Python惯用法是什么?例:

# instead of regular split
>> s = "a,b,c,d"
>> s.split(",")
>> ['a', 'b', 'c', 'd']

# ..split only on last occurrence of ',' in string:
>>> s.mysplit(s, -1)
>>> ['a,b,c', 'd']

mysplit接受第二个参数,即要分割的分隔符的出现。像常规列表索引一样,-1表示末尾的末尾。如何才能做到这一点?

关注者
0
被浏览
142
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    使用.rsplit()
    .rpartition()代替:

    s.rsplit(',', 1)
    s.rpartition(',')
    

    str.rsplit()可让您指定分割次数,而str.rpartition()仅分割一次,但总是返回固定数量的元素(前缀,定界符和后缀),并且对于单个分割情况而言更快。

    演示:

    >>> s = "a,b,c,d"
    >>> s.rsplit(',', 1)
    ['a,b,c', 'd']
    >>> s.rsplit(',', 2)
    ['a,b', 'c', 'd']
    >>> s.rpartition(',')
    ('a,b,c', ',', 'd')
    

    两种方法都从字符串的右侧开始拆分;通过str.rsplit()将最大值作为第二个参数,您可以拆分出最右边的出现次数。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看