Re: [問題] list 裡的元素累加

看板Python作者 (Range)時間11年前 (2014/04/21 12:27), 11年前編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/4 (看更多)
※ 引述《Drunk5566 (啾咪)》之銘言: : 不好意思,小弟有一個小問題想發問,題目如下: : 我有一個 list , A = [1,2,3,4,5,6,7,8,9,10] , 想要將裡面的元素作累加,並且加到 : 第五個元素停止,第六個元素在重新作累加,也就是希望作出一個新的list B, 裡面的元 : 素為 B = [1 , 1+2 , 1+2+3 , 1+2+3+4 , 1+2+3+4+5, 6, 6+7, 6+7+8, 6+7+8+9, : 6+7+8+9+10] : 我寫得如下: : if i<5: : x = x + A[i] : print x : else: : y = y + A[i] : print y : 1 : 3 : 6 : 10 : 15 : 6 : 13 : 21 : 30 : 40 : ------------------------------------------------------------ : 這個方法小一點的list 可以慢慢推,但我現在有個list 裡面有200000 : 個元素,希望每200個元素作累加,這方法絕對行不通,請教一下有沒有好一點的寫法可 : 以幫忙小弟,謝了 ... length = 200000 block = 200 for i in range(length / block): for j in range(1, block): idx = i * block + j A[idx] += A[idx-1] 一層迴圈不夠 你可以用兩個迴圈XD -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.240.114.29 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1398054454.A.7C7.html ※ 編輯: flarehunter (210.240.114.29), 04/21/2014 12:28:46

04/21 12:50, , 1F
感謝大大!!! 我真想跟你握手!!!
04/21 12:50, 1F

04/21 22:16, , 2F
from itertools import accumulate
04/21 22:16, 2F

04/21 22:17, , 3F
B = list(accumulate(a)) # 兩行完工
04/21 22:17, 3F

04/21 22:19, , 4F
啊抱歉沒看清楚題目,請略過我 XD
04/21 22:19, 4F
文章代碼(AID): #1JL9usV7 (Python)
討論串 (同標題文章)
文章代碼(AID): #1JL9usV7 (Python)