Python 在列表中的所有项目前添加相同的字符串

Python 在列表中的所有项目前添加相同的字符串,python,Python,已通过Stack Exchange进行了一些搜索并回答了问题,但无法找到我要查找的内容 鉴于以下清单: a = [1, 2, 3, 4] 我将如何创建: a = ['hello1', 'hello2', 'hello3', 'hello4'] 谢谢 使用: 使用: 列表理解允许将表达式应用于序列中的每个元素。这里该表达式是一个,将i合并到以hello开头的字符串中 演示: 另一个选择是使用: 根据WolframH注释进行编辑: map('hello{0}'.format, a) 您还可以使

已通过Stack Exchange进行了一些搜索并回答了问题,但无法找到我要查找的内容

鉴于以下清单:

a = [1, 2, 3, 4]
我将如何创建:

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

使用:

使用:

列表理解允许将表达式应用于序列中的每个元素。这里该表达式是一个,将
i
合并到以
hello
开头的字符串中

演示:

另一个选择是使用:

根据WolframH注释进行编辑:

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

您还可以使用
%
而不是
格式()


这是不是比第一个答案更像蟒蛇?我觉得它更容易阅读。这本质上与引擎盖下的格式化方法相同?不能说它是否是pythonic,但它首先需要将
int
转换为
string
,这可以由
format()
轻松处理,所以请选择基于
format()
的答案。谢谢@AshwiniChaudhary。非常有用。或者使用
map('hello{0}'。格式a)
,特别是如果您还不知道
lambda
。注意:在Python3.x
map
中不返回
list
(但是另一个iterable对象,它可以通过使用
list()
@WolframH superb tip!对于Python3.6+,也可以使用f-strings:
[f'hello{i}对于a中的i]
@GinoMempin:是的。我甚至可以说这是现在的首选。
[f'hello{i}' for i in a]
>>> a = [1,2,3,4]
>>> [f'hello{i}' for i in a]
['hello1', 'hello2', 'hello3', 'hello4']
a = range(10)
map(lambda x: 'hello%i' % x, a)
map('hello{0}'.format, a)
>>> a = [1, 2, 3, 4]
>>> ['hello%s' % i for i in a]
['hello1', 'hello2', 'hello3', 'hello4']