Расщепление в питоне

Строка в следующем формате.

A1:::x1:::B1.A2:::x2::x3::x4:::B2.A3:::x5::x6::x7:::B3.

Выход после расщепления должен быть

['x1:::B1', 'x2::x3::x4:::B2', 'x5::x6::x7:::B3']

Замечания:

  • А, х отделен :::
  • x1,x2....xn разделены ::
  • х,B отделяется :::
  • B,A отделяется .

1 ответ

Решение

Мне кажется, что вы хотите разделить сначала . (удаление пустых записей) затем разделить один раз на ::: сохраняя только второй элемент. В коде это выглядит так:

s = 'A1:::x1:::B1.A2:::x2::x3::x4:::B2.A3:::x5::x6::x7:::B3.'
slist = (substr for substr in s.split('.') if substr)
result = [x.split(":::",1)[1] for x in slist]

Как отмечено в комментариях, мы можем сформулировать это более кратко:

result = [x.split(":::",1)[1] for x in s.split('.') if x]
Другие вопросы по тегам