将整数添加到列表的一部分的最有效方法是什么?
示例:
input : [1,5,3,7,4,3]
range of list to modify is 2,4
add 3 to range
output : [1,5,6,10,7,3]
说明:
首先使用索引2和4获得子列表。
然后将3加到该索引中的值。然后返回包含已修改范围的列表。
我尝试使用循环,但速度不够快。需要更快的方法。
答案 0 :(得分:5)
将一个数字添加到任何数字(假设从给定的数字开始例如足够小)是恒定的时间量。您将必须对提供的范围内的许多列表元素进行迭代,并向其添加一个数字,该数字约为范围的长度。我认为您无法改进此任务(即问题中提出的问题),但是如果您要处理大量的任务,则可以将列表作为generator object来处理,从而可以节省整个程序的时间。数据。
答案 1 :(得分:1)
您可以对列表进行切片,然后使用迭代器操作,这比循环使用索引快:
l = [1,5,3,7,4,3]
l[2:5] = map((3).__add__, l[2:5])
l
然后成为[1, 5, 6, 10, 7, 3]
。