разделить строку на несколько разных символов

разделить строку на несколько разных символов


37 принят
>>> import re
>>> re.split('[ .]', 'a b.c')
['a', 'b', 'c']

2

Это заменяет все разделители на первый разделитель в списке, а затем «разделяет», используя этот символ.

def split(string, divs):
    for d in divs[1:]:
        string = string.replace(d, divs[0])
    return string.split(divs[0])

вывод:

>>> split("a b.c", " .")
['a', 'b', 'c']

>>> split("a b.c", ".")
['a b', 'c']

Тем не менее, мне нравится это решение.


2

Решение без повтора:

from itertools import groupby
sep = ' .,'
s = 'a b.c,d'
print [''.join(g) for k, g in groupby(s, sep.__contains__) if not k]

Объяснение здесь: https://stackoverflow.com/a/19211729/2468006


1

Не очень быстро, но выполняет работу:

def my_split(text, seps):
  for sep in seps:
    text = text.replace(sep, seps[0])
  return text.split(seps[0])
питон, строка, разъемные,

python,string,split,

11

Ответов: 4


37 принят
>>> import re
>>> re.split('[ .]', 'a b.c')
['a', 'b', 'c']

2

Это заменяет все разделители на первый разделитель в списке, а затем «разделяет», используя этот символ.

def split(string, divs):
    for d in divs[1:]:
        string = string.replace(d, divs[0])
    return string.split(divs[0])

вывод:

>>> split("a b.c", " .")
['a', 'b', 'c']

>>> split("a b.c", ".")
['a b', 'c']

Тем не менее, мне нравится это решение.


2

Решение без повтора:

from itertools import groupby
sep = ' .,'
s = 'a b.c,d'
print [''.join(g) for k, g in groupby(s, sep.__contains__) if not k]

Объяснение здесь: http://moredez.ru/q//a/19211729/2468006


1

Не очень быстро, но выполняет работу:

def my_split(text, seps):
  for sep in seps:
    text = text.replace(sep, seps[0])
  return text.split(seps[0])
питон, строка, разъемные,
Похожие вопросы