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