PythonでオレオレLinqライブラリ書いてます. ある程度できたので共有してみます. なにかあったら, よろしくお願いします. Githubはこちらです.

インストール方法

$ pip install ilinq

使用例

ProjectEulerの問題2に, フィボナッチ数列の値が400万以下かつ偶数の部分の和を求めよという問題があります. その問題を解いてみましょう.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from ilinq.ilinq import Linq
from math import sqrt


def fib(n):
    return round(1/sqrt(5) * ((1 + sqrt(5))/2)**n)


fibs = Linq(range(1, 100 + 1))  \
    .select(fib)    \
    .where(lambda n: n % 2 == 0)

print(fibs.last() >= 4 * 10**6)
# => True

print(
    fibs
    .take_while(lambda n: n < 4 * 10**6)
    .sum()
)
# => 4613732


外部リンク