В Python 3.x, как бы я разделить строку, как это:Разбивает строку только после того, как пространство
foo bar hello world
Так что выход будет список как:
['foo ', 'bar ', 'hello ', 'world ']
В Python 3.x, как бы я разделить строку, как это:Разбивает строку только после того, как пространство
foo bar hello world
Так что выход будет список как:
['foo ', 'bar ', 'hello ', 'world ']
Просто разделить на непечатаемых и затем добавьте их обратно.
a = 'foo bar hello world'
splitted = a.split() # split at ' '
splitted = [x + ' ' for x in splitted] # add the ' ' at the end
Или, если вы хотите немного больше фантазии:
splitted = ['{} '.format(item) for item in a.split()]
Если вы хотите обрабатывать и сохранять произвольные пробегов пробельных, вам необходимо регулярное выражение:
>>> import re
>>> re.findall(r'(?:^|\S+)\s*', ' foo \tbar hello world')
[' ', 'foo \t', 'bar ', 'hello ', 'world']
Это полезно, и я буду помнить об этом решении, но мне не нужно оставлять лишние пробелы. –
Будет ли это работать с несколькими пробелами, т. Е. Вставить обратно правильную сумму? – usr2564301
Это делает его неоднозначным, когда строка должна быть разделена. После первого, второго, последнего? Учитывая, что он не указал эту информацию (и я не думал об этом на примере), я не думаю, что это необходимо. – MSeifert
@RadLexus: Нет, не будет. Невозможно сохранить произвольные пробелы простым использованием простых строковых методов, подобных этому. – ShadowRanger