作者chenbigdog (gto)
看板Python
標題[問題] 新手發問
時間Wed Jan 16 09:04:31 2019
我有一個問題
但我是新手
想好久了
寫不出來
想請教各位高手
我有一列數
存在陣列裡面
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
我該如何做呢????請大家教我....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.253.103.239
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1547600673.A.7B3.html
1F:推 sean50301: b[i] = [sum(a[1:i]) for i in range(0,n)] 01/16 09:20
2F:→ sean50301: b = 01/16 09:20
3F:→ sean50301: 打錯 01/16 09:21
4F:→ sean50301: b = [sum(a[0:i]) for i in range(0,n)] 01/16 09:22
5F:推 adrianshum: b=[sum(x[0:i+1]) for i in (range(0, len(x))] 01/16 09:25
6F:→ adrianshum: 樓上, range 的 to index 是 exclusive 01/16 09:26
7F:推 sean50301: 對欸應該+1XD 01/16 09:27
8F:→ kiey: b.append(a[idx] if idx == 0 else b[idx-1] + a[idx]) 01/16 09:34
9F:→ chenbigdog: 謝謝樓上高手!!!!! 01/16 10:00
10F:→ chenbigdog: k大的寫法,小弟看不懂...哈..不過還是很謝謝你!!!! 01/16 10:00
11F:推 yangs0618: K大的是 index是0的b直接給a0 不是的就把前一個b加上這 01/16 12:14
12F:→ yangs0618: 個index的a 有點歸納法fu 01/16 12:14
13F:→ djshen: 不要寫成O(n^2)好嗎.. 01/16 12:34
14F:→ djshen: 另外這寫不出來不是程式問題 是國小國中數學問題 01/16 12:37
15F:推 adrianshum: 寫成O(n^2) 單純因為可以一行搞定,當然要是知道input 01/16 15:12
16F:→ adrianshum: 會很大就不會這樣寫。那上面那句 append 還是要配個f 01/16 15:12
17F:→ adrianshum: or loop 才行,要是要寫 for loop 我覺得那就不必寫得 01/16 15:12
18F:→ adrianshum: 那麼隱晦。這樣寫更易明白: 01/16 15:12
19F:→ adrianshum: sum=0 01/16 15:12
20F:→ adrianshum: for i in x : 01/16 15:12
21F:→ adrianshum: sum+=i 01/16 15:12
22F:→ adrianshum: y.append(sum) 01/16 15:13
23F:→ adrianshum: Oops 上一行忘了indent 01/16 15:13
24F:推 adrianshum: 其實用 itertools.accumulate 也可以一行搞定: 01/17 01:05
25F:→ adrianshum: y=list(itertools.accumulate(x, lambda a,b: a+b)) 01/17 01:06
26F:→ chenbigdog: python板充滿溫暖,謝謝各位!!!! 01/17 09:43