Добавить завершающий пробел в список строк - PullRequest
3 голосов
/ 03 апреля 2012

У меня есть список таких строк:

my_list = ['Lorem ipsum dolor sit amet,', 'consectetur adipiscing elit. ', 'Mauris id enim nisi, ullamcorper malesuada magna.']

Я хочу объединить эти элементы в одну читаемую строку. Моя логика такова:

If the list item does not end with a space, add one
otherwise, leave it alone
Then combine them all into one string.

Мне удалось сделать это несколькими разными способами.

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

message = ["%s " % x if not x.endswith(' ') else x for x in my_list]
messageStr = ''.join(message)

Произносим (я думаю, что это немного более читабельно):

for i, v in enumerate(my_list):
    if not v.endswith(' '):
        my_list[i] = "%s " % v
messageStr = ''.join(my_list)

У меня вопрос: есть ли более простой, "более разумный" способ сделать это?

Ответы [ 2 ]

5 голосов
/ 03 апреля 2012
>>> my_list = ['Lorem ipsum dolor sit amet,', 'consectetur adipiscing elit. ', 'Mauris id en
im nisi, ullamcorper malesuada magna.']
>>> ' '.join(string.strip() for string in my_list)
'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris id enim nisi, ullamcorper
 malesuada magna.'
1 голос
/ 03 апреля 2012

Вы можете просто немного понять список, используя strip:

' '.join([x.strip() for x in list])

Также лучше не называть свой список «списком», поскольку он встроен.

...