A=[a1,a2,a3...]というリストあって,sn=∑ni=1aiとして,S=[s1,s2,s3,...]というリストを新たに作りたいとする.うっかりしているとリスト内包表記を使えば早かろうと思って
def ls_comp_sum(A):
length = len(A)
return [sum(A[:i]) for i in range(length)]
と書いてしまったりするが,for
ループを使って,
def for_sum(A):
result = [arr[0]]
length = len(arr)
for i in range(1, length):
result.append(result[-1] + arr[i])
return result
としたほうがずっと早い(Dynamic Programmingというらしい).
0 件のコメント:
コメントを投稿