2015-01-13 2 views
1

Я пытаюсь разбить строку с помощью разделителя и сохранить их в виде словаря.Есть ли простой способ удалить пробелы в элементах списка?

Когда я использую split, он возвращает список, в котором есть пробелы.

Я хотел бы знать, можно ли удалять пробелы во время операции разделения или мне нужно сделать что-то вроде ниже, чтобы избавиться от белых пространств?

код, который я написал следующим образом:

word ='SAMPLE TEXT    :HELLO    ' 
k,v = words.split(':') 
k = k.strip() 
v = v.strip() 
D[k] = v 

любезно дайте мне знать

+0

Возможно, вам понадобится принудительно выполнить одно разделение с помощью ['.split (':', maxsplit = 1)'] (https://docs.python.org/2/library/stdtypes.html#str .split), в противном случае вы можете получить ошибку при распаковке слишком большого количества значений. –

+0

Ok .. смысл. изменит в моем сценарии – user596922

ответ

3

Использование несвязанного метода str.strip с map:

>>> word ='SAMPLE TEXT    :HELLO    ' 
>>> k, v = map(str.strip, word.split(':')) 
>>> k 
'SAMPLE TEXT' 
>>> v 
'HELLO' 
+0

Спасибо .. Это помогает .. – user596922

+0

@ user596922, Добро пожаловать. – falsetru

1

В качестве альтернативы можно использовать re.split:

>>> word ='SAMPLE TEXT    :HELLO    ' 
>>> import re 
>>> k,v = re.split('\s*:\s*',word.strip()) 
>>> k,v 
('SAMPLE TEXT', 'HELLO') 
+0

Я новичок в reg ex. Вышеупомянутое регулярное выражение соответствует только пробелу. как я совпадаю с ведущими в пространстве? – user596922

1
>>> word ='SAMPLE TEXT    :HELLO    ' 
>>> k,v=[str.strip(x) for x in word.split(':')] 
>>> k 
'SAMPLE TEXT' 
>>> v 
'HELLO' 
Смежные вопросы