对于在字符串中 最后一次 出现定界符时拆分字符串的建议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表示末尾的末尾。如何才能做到这一点?
mysplit
-1
使用.rsplit() 或.rpartition()代替:
.rsplit()
.rpartition()
s.rsplit(',', 1) s.rpartition(',')
str.rsplit()可让您指定分割次数,而str.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()将最大值作为第二个参数,您可以拆分出最右边的出现次数。