re.split
один простой способ сделать это - в этом случае, вы хотите разделить на наборе символов разделителей:
>>> import re
>>> thestring = "Breathing 1:-31.145 9:-32.8942 13:-35.8225 2:-35.9872 17:-36.2135 16:-36.6343 12:-36.7487 4:-37.8538 8:-38.6924 7:-39.0389 14:-39.0697 18:-40.0523 3:-40.5393 15:-40.5825 5:-41.6323 11:-45.2976 10:-53.3063 6:-231.617"
>>> re.split(r"[ :\-]+", thestring)
['Breathing', '1', '31.145', '9', '32.8942', '13', '35.8225', '2', '35.9872', '17', '36.2135', '16', '36.6343', '12', '36.7487', '4', '37.8538', '8', '38.6924', '7', '39.0389', '14', '39.0697', '18', '40.0523', '3', '40.5393', '15', '40.5825', '5', '41.6323', '11', '45.2976', '10', '53.3063', '6', '231.617']
[]
определяет набор символов, содержащий пробел, :
и -
(который должен уцелели, так как он используется для диапазонов как [a-z]
) - +
после того, как набор символов означает один или более-
для разделения явно на любом пространстве, или :-
, вы можете использовать |
или регулярное выражение штуковина:
>>> re.split(":-| ", thestring)
['Breathing', '1', '31.145', ...]
Как я уже говорил в комментарии по этому вопросу, я бы подумал, что сепаратор будет просто :
и -
указывает на отрицательное число ..
Что именно вы хотите, чтобы содержимое массива было? Вы уверены, что не хотите '' '' s? Каково значение структуры данных? –
@KarlKnechtel Я уверен, что я не хочу '' -''. 'array [0] == Breathing, array [1] == 1, array [2] == 31.145' и т. д. –
сделал u пробовал регулярные выражения? –