2013-07-12 2 views
3

Я не могу, и я не могу понять, что не так. Списки, которые я пытаюсь разбить, выглядят следующим образом:Удаляет пробелы из строки

['L500', ' ', '622651 ', '2007', ' 452295.00', '  7420', ' 0'] 

но с промежутками между ними. Я пробовал lstrip, rstrip, regex, split, join, replace, и ничего не работает. Список не изменяется.

for item in row: 
      item.lstrip() 
      item.rstrip() 
      print row 

Это мой код. Замените lstrip, rstrip другими методами, которые я упомянул.

Я использую Python 2.7.

+0

И что это язык, который вы используете? Расскажи нам. –

+0

a) на каком языке и b) вы хотите удалить пробелы из записей, например, «L500» должен стать «L500» или вы хотите удалить пустые строки из массива/списка? –

+1

Предполагается ли, что ваши примеры не содержат пробелов? – Master117

ответ

7

Строки в python (и многих других языках) неизменяемы. Это означает, что когда вы выполняете операции над строкой, вы возвращаете новый экземпляр этой строки вместо изменения существующих элементов. Чтобы сделать то, что вы хотите, вы должны повторно использовать элементы в списке.

for index, item in enumerate(row): 
    row[index] = item.strip() 
+0

Спасибо, кучка! Извините, я забыл, что строки неизменны. Я новичок в Python. – KSHMR

4

Использование списка понимание:

row = [x.strip() for x in row] 
+0

Если вы не хотите переустанавливать переменную, которую вы можете использовать: 'row [:] = [x.strip() для x в строке]'. – Matthias

+0

«В python 3, который, однако, вернет генератор». Нет, не будет. Он вернет список. – DSM

+0

Ну, я буду ... вы правы – mishik

3

просто еще один способ:

>>> row = map(lambda x: x.strip(), row) 
+1

'row = map (str.strip, row)' намного быстрее – Kiro

Смежные вопросы