2015年12月2日水曜日

pythonのリスト内包表記、関数型、手続き,numpy

pythonで1から100までの自然数うち、3の倍数のみを10倍して合計を求める。

手続き
res = 0
for n in range(1,101):
    if n%3==0:
        res += n*10

関数型
res = sum(map(lambda n : n * 10, filter( lambda n : n%3==0, range(1,101)))

リスト内包表記
res = sum([n * 10 for n in range(1,101) if n%3==3])

numpy
import numpy as np
N=np.arange(1,101)
res = np.sum(N[N%3==0]*10)

関数型と二項演算子
res = sum(map(lambda n : n * 10 if n%3==0 else 0, range(1,101)))

関数型(ハードコア版)
res = reduce(lambda n1,n2: n1+n2,(map(lambda n : n * 10, filter( lambda n : n%3==0, range(1,101)))))

0 件のコメント:

コメントを投稿

登録 コメントの投稿 [Atom]

<< ホーム