有没有一种有效的方法可以从Python列表的其余元素中减去一个元素?

时间:2020-06-27 12:48:17

标签: python-3.x

我需要从其余元素中减去列表中的每个元素,我一直在使用嵌套循环代码:

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)会使速度变慢。

感谢读者抽出宝贵时间。

2 个答案:

答案 0 :(得分:0)

您可以将列表理解与enumeratesumlen一起使用

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