Найти - Пользователи
Полная версия: Составить список из строки
Начало » Python для новичков » Составить список из строки
1 2
r3m1x
Здравствуйте! Например есть строка “1 2 3”, используя split(“ ”), я получаю , а надо . Подскажите пожалуйста как сделать.
Enchantner
Вызывай split() без аргументов:
>>> "1 2     3".split()
['1', '2', '3']
Или надо обязательно сохранять лишние пробелы перед тройкой? Тогда так:
>>> import re
>>> re.split(r'\b\s', "1 2 3")
['1', '2', ' 3']
r3m1x
Да, нужно сохранить пробелы. Большое спасибо )
py.user.next
>>> s = "1 2     3"
>>> s.split(' ', 2)
['1', '2', ' 3']
>>> tuple(s.split(' ', 2)[-1])
(' ', ' ', ' ', ' ', '3')
>>>
r3m1x
re.split(r'\b\s',  "1 2     3")
не работает с кирилицей, например: re.split(r'\b\s', “а б”) возвращает

s.split(' ', 2)
не работает если вначале пробелы, например: “ 1 2 3”.split(' ', 2) возвращает
dimabest
p = re.compile(r'(?<=\b)\s', re.U)
ls = p.split(u" я у z")
for e in ls:
print "'%s'" % e
r3m1x
dimabest
Спасибо! Если не сложно объяните еще пожалуйста вот это: (r'(?<=\b)\s', re.U)
dimabest
шутка :)

Шаблон менять не нужно, достаточно добавить флаг re.U

Читаем что означают \b \w \W и как флаг re.U меняет их поведение http://docs.python.org/library/re.html#re.U
py.user.next
r3m1x
не работает если вначале пробелы, например: “ 1 2 3”.split(' ', 2) возвращает
сделай .lstrip()
r3m1x
py.user.next
Как раз нужно
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB