Ищете элегантный способ:
- Разделить строку на основе разделителя
- Вместо того, чтобы отбрасывать разделитель, делая его частью разделенных фрагментов.
Например, у меня есть данные о дате и времени, такие как:
D2018-4-21T3:55+6
2018-4-4T3:15+6
D2018-11-21T12:45+6:30
Иногда есть D, иногда нет (однако я всегда хочу, чтобы он был частью первого фрагмента), без конечных или ведущих нули для времени и часового пояса иногда имеют только ":". Дело в том, что необходимо разделить эти символы 'D, T, +', потому что сегменты могут не соответствовать длине sae. Если бы это было так, было бы проще разделить на основе индекса. Я хочу разделить их на несколько символов, таких как T и +, и сделать их частью данных, например:
['D2018-4-21', 'T3:55', 'TZ+6']
['D2018-4-4', 'T3:15', 'TZ+6']
['D2018-11-21', 'T12:45', 'TZ+6:30']
Я знаю, что лучше сначала очистить данные и нормализовать все строки, чтобы следовать тот же шаблон, но просто любопытно, как это сделать, как есть
Сейчас мое уродливое решение выглядит так:
[i+j for _, i in enumerate(['D','T','TZ']) for __, j in enumerate('D2018-4-21T3:55+6'.replace('T',' ').replace('D', ' ').replace('+', ' +').split()) if _ == __]