LOL @ Регулярный комментарий Алекса ... надеюсь, не слишком много ненавистников. Тем не менее, несмотря на это, хотя они быстрее, потому что они выполняются в C, регулярные выражения - не мой первый выбор ... возможно, я был предвзятым из-за знаменитой цитаты jwz : '' ' люди, сталкиваясь с проблемой, думают: «Я знаю, я буду использовать регулярные выражения». Теперь у них есть две проблемы. '' '
Я скажу, что решить это домашнее задание сложно, потому что решения чреваты ошибками, как это было в существующих решениях. Возможно, это случайность, потому что он требует, чтобы OP отлаживал и исправлял эти предложения, а не просто дословно вставлял их в свое решение для назначения.
Что касается проблем, они включают, но не ограничиваются:
- оставляя последовательные пробелы
- удаление отрицательных знаков и
- объединение нескольких чисел
Итог ... какие решения мне нравятся больше всего? Я бы запустил одно из следующего и отладил оттуда:
Для регулярных выражений я выберу:
@ Решение Алекса или @ Мэтта, если я хочу только данные вместо «золотой» строки
Для обработки строк я изменю решение @ Matt следующим образом:
keep = set(string.whitespace+string.digits+'+-')
line = ''.join(x for x in line if x in keep)
Наконец, у @Greg есть хорошая мысль. Без четкой спецификации это только частичные решения.