我有一个问题
但我是新手
想好久了
写不出来
想请教各位高手
我有一列数
存在阵列里面
a[1]=x
a[2]=y
a[3]=z
。
。
a[n]=xxx
我要把上面的阵列
存在另一个阵列里面
变成
b[1]=x
b[2]=x+y
b[3]=x+y+z
b[n]=x+y+z+....xxx
我该如何做呢????请大家教我....
作者:
sean50301 ( (づ′・ω・)づ)
2019-01-16 09:20:00b[i] = [sum(a[1:i]) for i in range(0,n)]b =打错b = [sum(a[0:i]) for i in range(0,n)]
b=[sum(x[0:i+1]) for i in (range(0, len(x))]楼上, range 的 to index 是 exclusive
作者:
sean50301 ( (づ′・ω・)づ)
2019-01-16 09:27:00对欸应该+1XD
作者:
kiey (炼)
2019-01-16 09:34:00b.append(a[idx] if idx == 0 else b[idx-1] + a[idx])
谢谢楼上高手!!!!!k大的写法,小弟看不懂...哈..不过还是很谢谢你!!!!
K大的是 index是0的b直接给a0 不是的就把前一个b加上这个index的a 有点归纳法fu
作者:
djshen (djshen)
2019-01-16 12:34:00不要写成O(n^2)好吗..另外这写不出来不是程式问题 是国小国中数学问题
写成O(n^2) 单纯因为可以一行搞定,当然要是知道input会很大就不会这样写。那上面那句 append 还是要配个for loop 才行,要是要写 for loop 我觉得那就不必写得那么隐晦。这样写更易明白:sum=0for i in x :sum+=iy.append(sum)Oops 上一行忘了indent其实用 itertools.accumulate 也可以一行搞定:y=list(itertools.accumulate(x, lambda a,b: a+b))