Python:在分隔符的开头而不是结尾处拆分字符串

时间:2014-10-02 17:37:42

标签: python string list python-2.7 split

我正在尝试使用多个字符分隔符拆分字符串,我可以在结果中保留分隔符,但它位于第一部分而不是我需要它的第二部分。这就是我所拥有的。

test = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
d = 'DEF'
for line in test:
    s = [e+d for e in test.split(d) if e !=""]
print s
['ABCDEF', 'GHIJKLMNOPQRSTUVWXYZDEF']

我需要的是分裂时的DEF在第2部分。我将不胜感激。

3 个答案:

答案 0 :(得分:1)

使用str.partition

>>> test = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
>>> d = 'DEF'
>>> head, sep, tail = test.partition(d)
>>> [head, sep+tail]
['ABC', 'DEFGHIJKLMNOPQRSTUVWXYZ']

答案 1 :(得分:0)

只需将DEF添加到第二个元素:

s1,s2 = test.split(d)
print [s1,d + s2]

或在拆分列表中添加:

spl = test.split(d)
spl[-1] = d + spl[-1]

在您自己的代码中,您只需在每次不添加s时重新分配值,这样您的循环就毫无意义:

for line in test:
    s = [e+d for e in test.split(d) if e !=""]

答案 2 :(得分:0)

试试这样: -

test = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
   words= list(word)
   first=[]
   second=[]
   for w in words:
      if w ==A or w==B or w==C:
        first.append(w)
      else:
        second.append(w)
   head='',join(first)
   tail='',join(second)
   [head,tail]