Самый простой способ сделать это со списком понимания:
[s + mystring for s in mylist]
Обратите внимание, что я избегал с использованием встроенных названий, таких как , список
, потому что это тени или скрывает встроенные имена, что очень не очень хорошо.
Кроме того, если вам на самом деле не нужен список, но просто нужен итератор, выражение генератора может быть более эффективным (хотя оно вряд ли не имеет значения в коротких списках):
(s + mystring for s in mylist)
Это очень мощные, гибкие, и кратко Каждый хороший программист Python должен научиться владеть их.
До сих пор я не нашел способа комментировать ответы. Так что вот оно.
Я поддерживаю ответ Игнасио Васкес-Абрамс из list2 = ['%sbar' % x для x в списке]
.
Другие ответы [строка + "бар" для строки в списке]
будут работать в большинстве случаев, но если вы принимаете более общее решение для самого простого случая, то вы - IMHO - следуете Принципам проектирования питонов. Желательно, чтобы был один очевидный способ сделать это. %sbar
работает постоянно.
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']
new_list = [word_in_list + end_string for word_in_list in old_list]
Использование таких имен, как «Список» для имени ваших переменной, является плохим, поскольку он перезаписывает / переопределяет встроенные.
list2 = ['%sbar' % (x,) for x in list]
И не используйте список
как имя; это тени встроенный тип.