Найти - Пользователи
Полная версия: Составить список из строки
Начало » Python для новичков » Составить список из строки
1 2
r3m1x
И еще подскажите плиз как сделать так, чтобы пробелы оставались только у первого элемента списка, например: “ 1 2 3”=>
usmix
r3m1x
Здравствуйте! Например есть строка “1 2 3”, используя split(“ ”), я получаю , а надо . Подскажите пожалуйста как сделать.
Можно вообще разбить по цифрам и со всеми идущими перед ними whitespace'ами:

import re

for s in ['1 2 3', ' 1 2 3', ' 1 2 3', '1 2 3', '1 2 3', '123', '\t\n1\n2\t3']:
print '~' * 25
print '"%s"' % s
print re.findall(r'\s{0,}\d', s)
Результат:
~~~~~~~~~~~~~~~~~~~~~~~~~
"1 2 3"
['1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
" 1 2 3"
[' 1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
" 1 2 3"
[' 1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"1 2 3"
['1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"1 2 3"
['1', ' 2', ' 3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"123"
['1', '2', '3']
~~~~~~~~~~~~~~~~~~~~~~~~~
"
1
2 3"
['\t\n1', '\n2', '\t3']
Удачи!
r3m1x
usmix
Цифры это только для примера… А вообще задача уже немного изменилась ) Нужно чтобы пробелы оставались только у первого элемента списка, например:
“ f g h”=>
usmix
r3m1x
usmix
Цифры это только для примера… А вообще задача уже немного изменилась ) Нужно чтобы пробелы оставались только у первого элемента списка, например:
“ f g h”=>
Должен прокатить: :)

re.findall(r'^\s+\S+|\S+', s)
r3m1x
Прокатило ) Спасибо.
А вот до чего я додумался ))
text = "     a b  c"
a = re.compile(r'\s+\w+', re.U).match(text).group()
arr = [a]
arr += par.replace(a, '').split()
Пошел учить регуляторные выражения )
usmix
r3m1x
Прокатило ) Спасибо.
Пожалуйста!

r3m1x
А вот до чего я додумался ))…
Молодец! Всегда можно реализовать несколькими способами… проблема только одна - выбрать оптимальный вариант!

r3m1x
Пошел учить регуляторные выражения )
Удачи!
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