我有一个代码,它在列表的每个项目上连接一个字符串“lst”。
i = 0
lim = len(lst)
while i < lim:
lst[i] = 'lst%s' % (lst[i])
i += 1
有没有更快的方法来做到这一点?
这将修改原始lst
对象:
lst[:] = ['lst%s' % item for item in lst]
或使用新样式字符串格式:
lst[:] = ['lst{}'.format(item) for item in lst]
使用列表理解切片分配:
lst[:] = ['lst' + x for x in 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']