Python,在列表中的每个项目上追加字符串
我有一个代码,在列表的每一项上连接一个字符串'lst'Python,在列表中的每个项目上追加字符串,python,arrays,string,list,append,Python,Arrays,String,List,Append,我有一个代码,在列表的每一项上连接一个字符串'lst' i = 0 lim = len(lst) while i < lim: lst[i] = 'lst%s' % (lst[i]) i += 1 有没有更快的方法来完成此任务?使用列表理解片分配: lst[:] = ['lst' + x for x in lst] 使用列表指定: lst[:] = ['lst' + x for x in lst] 这将修改原始lst对象: 或使
i = 0
lim = len(lst)
while i < lim:
lst[i] = 'lst%s' % (lst[i])
i += 1
有没有更快的方法来完成此任务?使用列表理解片分配:
lst[:] = ['lst' + x for x in lst]
使用列表指定:
lst[:] = ['lst' + x for x in lst]
这将修改原始lst对象: 或使用新样式字符串格式:
lst[:] = ['lst{}'.format(item) for item in lst]
这将修改原始lst对象: 或使用新样式字符串格式:
lst[:] = ['lst{}'.format(item) for item in lst]
这是地图版
lst = map(lambda x: 'lst%s' % x, lst)
这是地图版
lst = map(lambda x: 'lst%s' % x, lst)
一个有趣的地图版本
>>> lst=['foo', 'bar', 'baz']
>>> map('lst'.__add__, lst)
['lstfoo', 'lstbar', 'lstbaz']
但更严重的是,您可以从生成器表达式中指定一个切片
>>> lst[:] = ('lst{}'.format(x) for x in lst)
>>> lst
['lstfoo', 'lstbar', 'lstbaz']
一个有趣的地图版本
>>> lst=['foo', 'bar', 'baz']
>>> map('lst'.__add__, lst)
['lstfoo', 'lstbar', 'lstbaz']
但更严重的是,您可以从生成器表达式中指定一个切片
>>> lst[:] = ('lst{}'.format(x) for x in lst)
>>> lst
['lstfoo', 'lstbar', 'lstbaz']
唯一好的地图版本是map'lst{0}。格式,lstAwesome:我仍然停留在Python2.4中@jamylak,我对你的评论投了赞成票,因为它是最好的地图版本,但我不同意有一个好的地图版本。@shyam,2.4的等价物是地图'lst%s'。唯一好的地图版本是地图'lst{0}。格式,lstAwesome:我仍然停留在python 2.4中@jamylak,我更新了你的评论,因为这是最好的地图版本,但我不同意有一个好的地图版本。@shyam,2.4的等价物是地图'lst%s'。\uu mod uuu,lst你不需要创建临时列表,用发电机就行了expression@gnibbler使用生成器表达式仍然会创建一个临时的listOh darn,但这肯定只是一个实现细节。最好写下您真正的意思,以防实现有所改进您不需要创建临时列表,只需使用生成器即可expression@gnibbler使用生成器表达式仍然会创建一个临时的listOh darn,但这肯定只是一个实现细节。最好写下您真正的意思,以防实现即兴创作实际上应该在每个itemTitle上预加字符串实际上应该在每个itemTitle上预加字符串为什么在这里使用slice赋值lst[:]=很重要?对于我来说,没有它也可以工作。为什么在这里使用slice赋值lst[:]=很重要?没有它我也能用。