Могу ли я отформатировать текст внутри списка в Python? - PullRequest
0 голосов
/ 21 февраля 2012

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

['xxxxxx\n', 'xxxxxx\n', 'xxxxxx\n', 'xxxxxx\n', 'xxxxxx   \n', 'xxxxxx\n',
 '    xxxxxx   \n', 'xxxxxx   \n', 'xxxxxx\n', ...]

Я хотел бы напечатать список в виде списка, но отформатировать текст внутри списка.Я хотел бы убрать пробел до и после слова (которое в этом примере заменяется на xxxxxx), а также использовать функцию .title().

Я пытался сделать это, но я получаю сообщение об ошибке:

AttributeError: 'list' object has no attribute 'strip'

Я понимаю эту ошибку, но мне интересно, есть ли другой способ отформатировать текст внутрисписок.

Ответы [ 4 ]

3 голосов
/ 21 февраля 2012

Вы можете создать список правильно отформатированной строки, используя

[s.strip().title() for s in my_list]

и делать с этим списком все, что хотите (включая печать).

1 голос
/ 21 февраля 2012

Проблема в том, что строки неизменны, вам нужно создать новую строку и заменить старую в списке. Простой способ будет:

a = ['xxxxxx\n',  ' xxxxxx \n', 'xxxxxx \n', 'xxxxxx\n', ...]
a = [x.strip().title() for x in a]
0 голосов
/ 21 февраля 2012

Мое маленькое картографическое решение:

my_list = ['xxxxxx\n', 'xxxxxx\n', 'xxxxxx\n', 'xxxxxx\n', 'xxxxxx \n'] # коротко для краткости map(str.title, (map(str.strip, my_list)))

0 голосов
/ 21 февраля 2012
my_list=['xxxxxx\n', 'xxxxxx\n', 'xxxxxx\n', 'xxxxxx\n', 'xxxxxx   \n', 'xxxxxx\n', '    xxxxxx   \n', 'xxxxxx   \n', 'xxxxxx\n']

def format_string_from_list(_str):
    return _str.strip().title()

my_new_list=[format_string_from_list(_str) for _str in my_list]
print my_new_list

>>> ['Xxxxxx', 'Xxxxxx', 'Xxxxxx', 'Xxxxxx', 'Xxxxxx', 'Xxxxxx', 'Xxxxxx', 'Xxxxxx', 'Xxxxxx']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...