Подготовьте одну и ту же строку ко всем элементам в списке

Проделали некоторый поиск по ответам на Stack Exchange, но не смогли найти то, что я ищу.

Учитывая следующий список:

a = [1, 2, 3, 4]

Как мне создать:

a = ['hello1', 'hello2', 'hello3', 'hello4']

Спасибо!

Ответы

Ответ 1

Используйте понимание :

['hello{0}'.format(i) for i in a]

Понимание списка позволяет применять выражение к каждому элементу в последовательности.

Демо:

>>> a = [1,2,3,4]
>>> ['hello{0}'.format(i) for i in a]
['hello1', 'hello2', 'hello3', 'hello4']

Ответ 2

Еще один вариант - использовать функцию встроенную функцию карты:

a = range(10)
map(lambda x: 'hello%i' % x, a)

Редактировать согласно комментарию WolframH:

map('hello{0}'.format, a)

Ответ 3

используйте понимание списка:

In [1]: a = [1,2,3,4]

In [2]: ["hello" + str(x) for x in a]
Out[2]: ['hello1', 'hello2', 'hello3', 'hello4']