Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 24, 2011 11:41:04

r3m1x
От:
Зарегистрирован: 2011-07-30
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Составить список из строки

И еще подскажите плиз как сделать так, чтобы пробелы оставались только у первого элемента списка, например: “ 1 2 3”=>



Офлайн

#2 Сен. 24, 2011 13:03:58

usmix
От:
Зарегистрирован: 2011-07-08
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Составить список из строки

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']
Удачи!



Отредактировано (Сен. 24, 2011 13:19:01)

Офлайн

#3 Сен. 24, 2011 18:27:02

r3m1x
От:
Зарегистрирован: 2011-07-30
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Составить список из строки

usmix
Цифры это только для примера… А вообще задача уже немного изменилась ) Нужно чтобы пробелы оставались только у первого элемента списка, например:
“ f g h”=>



Отредактировано (Сен. 24, 2011 18:27:20)

Офлайн

#4 Сен. 24, 2011 19:56:27

usmix
От:
Зарегистрирован: 2011-07-08
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Составить список из строки

r3m1x
usmix
Цифры это только для примера… А вообще задача уже немного изменилась ) Нужно чтобы пробелы оставались только у первого элемента списка, например:
“ f g h”=>
Должен прокатить: :)

re.findall(r'^\s+\S+|\S+', s)



Офлайн

#5 Сен. 24, 2011 20:38:03

r3m1x
От:
Зарегистрирован: 2011-07-30
Сообщения: 29
Репутация: +  0  -
Профиль   Отправить e-mail  

Составить список из строки

Прокатило ) Спасибо.
А вот до чего я додумался ))

text = "     a b  c"
a = re.compile(r'\s+\w+', re.U).match(text).group()
arr = [a]
arr += par.replace(a, '').split()
Пошел учить регуляторные выражения )



Отредактировано (Сен. 24, 2011 20:40:01)

Офлайн

#6 Сен. 24, 2011 20:52:00

usmix
От:
Зарегистрирован: 2011-07-08
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Составить список из строки

r3m1x
Прокатило ) Спасибо.
Пожалуйста!

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

r3m1x
Пошел учить регуляторные выражения )
Удачи!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version