用python語言做functional programming,除了reduce之外,還有其它方式可以不停地處理相鄰的兩個元素嗎?

0 投票
比方說:給定陣列 A[i]

想要計算出陣列 B[i],  其中B[0] = A[0] ,  

                                          B[i] = A[i] + A[i-1] , for i > 0
時間: 2016年 2月 24日 作者: robot (1,180 積分)

1個回答

0 投票
B = [ sum(x,y) for x,y in zip([0]+A, A+[0])[:-1] ]
 
    ex:  A[i]                        =  [1, 2, 1]
 
    則    [0] + A                     =  [0, 1, 2, 1]
            A   +  [0]                  = [1, 2, 1, 0] 
           zip([0]+A, A+[0])      =  [(0,1), (1,2), (2,1), (1,0)]
           zip([0]+A, A+[0])[:-1] = [(0,1), (1,2), (2,1)]
 
已回復 2016年 2月 24日 作者: humorless (2,220 積分)
...