在Python列表中将值添加到一系列值的最有效方法?

时间:2018-07-16 03:09:51

标签: python performance

将整数添加到列表的一部分的最有效方法是什么?

示例:

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加到该索引中的值。然后返回包含已修改范围的列表。

我尝试使用循环,但速度不够快。需要更快的方法。

2 个答案:

答案 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]