推 sean50301: b[i] = [sum(a[1:i]) for i in range(0,n)] 01/16 09:20
→ sean50301: b = 01/16 09:20
→ sean50301: 打錯 01/16 09:21
→ sean50301: b = [sum(a[0:i]) for i in range(0,n)] 01/16 09:22
推 adrianshum: b=[sum(x[0:i+1]) for i in (range(0, len(x))] 01/16 09:25
→ adrianshum: 樓上, range 的 to index 是 exclusive 01/16 09:26
推 sean50301: 對欸應該+1XD 01/16 09:27
→ kiey: b.append(a[idx] if idx == 0 else b[idx-1] + a[idx]) 01/16 09:34
→ chenbigdog: 謝謝樓上高手!!!!! 01/16 10:00
→ chenbigdog: k大的寫法,小弟看不懂...哈..不過還是很謝謝你!!!! 01/16 10:00
推 yangs0618: K大的是 index是0的b直接給a0 不是的就把前一個b加上這 01/16 12:14
→ yangs0618: 個index的a 有點歸納法fu 01/16 12:14
→ djshen: 不要寫成O(n^2)好嗎.. 01/16 12:34
→ djshen: 另外這寫不出來不是程式問題 是國小國中數學問題 01/16 12:37
推 adrianshum: 寫成O(n^2) 單純因為可以一行搞定,當然要是知道input 01/16 15:12
→ adrianshum: 會很大就不會這樣寫。那上面那句 append 還是要配個f 01/16 15:12
→ adrianshum: or loop 才行,要是要寫 for loop 我覺得那就不必寫得 01/16 15:12
→ adrianshum: 那麼隱晦。這樣寫更易明白: 01/16 15:12
→ adrianshum: sum=0 01/16 15:12
→ adrianshum: for i in x : 01/16 15:12
→ adrianshum: sum+=i 01/16 15:12
→ adrianshum: y.append(sum) 01/16 15:13
→ adrianshum: Oops 上一行忘了indent 01/16 15:13
推 adrianshum: 其實用 itertools.accumulate 也可以一行搞定: 01/17 01:05
→ adrianshum: y=list(itertools.accumulate(x, lambda a,b: a+b)) 01/17 01:06
→ chenbigdog: python板充滿溫暖,謝謝各位!!!! 01/17 09:43