Problem 2

調子に乗って2問目.

fib_list = [1,1]
while fib_list[-1]  < 4 * 10 ** 6:
    fib_list.append(fib_list[-1]+fib_list[-2])
fib_list.pop(-1)
print sum([x for x in fib_list if not x & 1])

うーん今一汚い.
フィボナッチ数列のリストを条件まで作成して,最後は問1と似た流れですね.
%2と同じですがbit演算にしてみました.pop()はリストの最後尾の値が条件を満たしていないので(4millionを超えている)吐き出してます.