Добавление той же строки к списку строк в Python

Это задание для шаблона команды .

145
задан Peter Hansen 12 January 2010 в 16:56
поделиться

5 ответов

Самый простой способ сделать это со списком понимания:

[s + mystring for s in mylist]

Обратите внимание, что я избегал с использованием встроенных названий, таких как , список , потому что это тени или скрывает встроенные имена, что очень не очень хорошо.

Кроме того, если вам на самом деле не нужен список, но просто нужен итератор, выражение генератора может быть более эффективным (хотя оно вряд ли не имеет значения в коротких списках):

(s + mystring for s in mylist)

Это очень мощные, гибкие, и кратко Каждый хороший программист Python должен научиться владеть их.

266
ответ дан 23 November 2019 в 21:36
поделиться

До сих пор я не нашел способа комментировать ответы. Так что вот оно. Я поддерживаю ответ Игнасио Васкес-Абрамс из list2 = ['%sbar' % x для x в списке].

Другие ответы [строка + "бар" для строки в списке] будут работать в большинстве случаев, но если вы принимаете более общее решение для самого простого случая, то вы - IMHO - следуете Принципам проектирования питонов. Желательно, чтобы был один очевидный способ сделать это. %sbar работает постоянно.

2
ответ дан 21 September 2019 в 00:54
поделиться
my_list = ['foo', 'fob', 'faz', 'funk']
string = 'bar'
my_new_list = [x + string for x in my_list]
print my_new_list

Это будет печать:

['foobar', 'fobbar', 'fazbar', 'funkbar']
23
ответ дан 23 November 2019 в 21:36
поделиться
new_list = [word_in_list + end_string for word_in_list in old_list]

Использование таких имен, как «Список» для имени ваших переменной, является плохим, поскольку он перезаписывает / переопределяет встроенные.

0
ответ дан 23 November 2019 в 21:36
поделиться
list2 = ['%sbar' % (x,) for x in list]

И не используйте список как имя; это тени встроенный тип.

0
ответ дан 23 November 2019 в 21:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: