python3.0 列表逆向相加求和?-灵析社区

我想对你说

a = [[1,100],[2,23],[6,456],[2,123],[6,456],[2,123],[6,456]] 我需要把所有的数依次相加求和 需要逆向 2和相加 (456+123)/2 = .... 3个相加 (456+123 + 456)/3 =... ..... 最后这些和放到一个列表中 数据量大的情况下,有没有高效的写法。 我用 ct = [] for mas in range(1, len(a)): sum_total = 0.0 for ma in range(mas): sum_total += float(a[i - ma][1]) avg = sum_total/mas ct.append(avg) 第二种 ct = [] for i in range(len(a)): for s in range(i - 1, -1, -1): avg = np.mean([float(a[t][1]) for t in range(s, i+1)]) ct.append(avg) 运行的时候 效率 太慢, 有没有高效的方法?

阅读量:19

点赞量:0

问AI
三千米的偷感
你是指求索引1的后缀和吗 a = [[1,100],[2,23],[6,456],[2,123],[6,456],[2,123],[6,456]] res = [0] * len(a) res[-1] = a[-1][1] for i in range(len(a) - 2, -1, -1): res[i] = res[i + 1] + a[i][1] print(res) # [1737, 1637, 1614, 1158, 1035, 579, 456]