2013-02-21 117 views
89

什麼是推薦的Python成語在最後字符串分裂字符串中的分隔符?例如:分割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意味着從末到尾。如何才能做到這一點?

回答

161

使用.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()作爲第二個參數的最大值,您可以分割右邊最右邊的事件。

2

我只是做了以此爲樂

>>> s = 'a,b,c,d' 
    >>> [item[::-1] for item in s[::-1].split(',', 1)][::-1] 
    ['a,b,c', 'd']