Как я могу разделить 1 или более случаями разделителя в Python?

У меня есть отформатированная строка от файла журнала, который похож:

>>> a="test                            result"

Таким образом, тест и результат разделяются некоторыми пробелами - он был, вероятно, создан с помощью отформатированной строки, которая дала test некоторый постоянный интервал.

Простое разделение не добьется цели:

>>> a.split(" ")
['test', '', '', '', ... '', '', '', '', '', '', '', '', '', '', '', 'result']

split(DELIMITER, COUNT) очищенный некоторые ненужные значения:

>>> a.split(" ",1)
['test', '                           result']

Это помогло - но конечно, мне действительно нужно:

['test', 'result']

Я могу использовать split() сопровождаемый map + strip(), но я задался вопросом, существует ли больше Pythonic способ сделать это.

Спасибо,

Adam

ОБНОВЛЕНИЕ: Такое простое решение! Спасибо всем.

28
задан Martin Thoma 16 October 2018 в 09:21
поделиться

4 ответа

Только не указывайте разделитель?

>>> a="test                            result"
>>> a.split()
['test', 'result']
54
ответ дан 28 November 2019 в 02:16
поделиться
>>> import re
>>> a="test                            result"
>>> re.split(" +",a)
['test', 'result']

>>> a.split()
['test', 'result']
33
ответ дан 28 November 2019 в 02:16
поделиться

Просто это должно работать:

a.split()

Пример:

>>> 'a      b'.split(' ')
['a', '', '', '', '', '', 'b']
>>> 'a      b'.split()
['a', 'b']

Из документации :

Если sep не указан или равен None, применяется другой алгоритм разделения: выполняется последовательное выполнение пробелов. рассматривается как один разделитель, и результат не будет содержать пустых строк в начале или в конце, если строка имеет начальные или конечные пробелы. Следовательно, разделение пустой строки или строки, состоящей только из пробелов, с разделителем None возвращает [].

18
ответ дан 28 November 2019 в 02:16
поделиться

Возникли проблемы с простым a.split () ?

4
ответ дан 28 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: