我需要从其余元素中减去列表中的每个元素,我一直在使用嵌套循环代码:
list_ = [1,2,3,4,5]
out = []
for i in range(len(list_)):
s = 0
for j in range(i,len(list_)):
s += list_[i] - list_[j]
out.append(s)
输出为:
[-10, -6, -3, -1, 0]
我的算法需要进行此计算,复杂度为O(n ^ 2)会使速度变慢。
感谢读者抽出宝贵时间。
答案 0 :(得分:0)
您可以将列表理解与enumerate
,sum
和len
一起使用
list_ = [1,2,3,4,5]
print([v * len(list_[i:]) - sum(list_[i:]) for i, v in enumerate(list_)])
输出
[-10, -6, -3, -1, 0]
答案 1 :(得分:0)
这里是O(n)的版本。
>>> out
[-10, -6, -3, -1, 0]
结果
WebDriverException