私はProject Eulerの問題をPythonに習得するために取り組んでおり、2番目の問題の解決策を書いています(フィボナッチシーケンス内の偶数の項の和を求める400万を超える)。このコードは私に正しい解決策を与えてくれますが、生成したフィボナッチ数のリストから奇数番号の値を削除するには、モジュラス除算を2回使用する必要があります。ここで私が書いたソリューションです:Pythonモジュロ演算子を使用したリストの並べ替え
term_1 = 1
term_2 = 2
fibonacci_list = [1]
while term_2 < 4000000:
fibonacci_list.append(term_2)
term_1, term_2 = term_2, term_1 + term_2
for num in fibonacci_list:
if num % 2 != 0
fibonacci_list.remove(num)
for num in fibonacci_list:
if num % 2 != 0
fibonacci_list.remove(num)
return sum(fibonacci_list)
を私はforループ1に入れた場合は、リストfibonacci_listには、次のようになります。
[2, 5, 8, 21, 34, 89, 144, 377, 610, 1597, 2584, 6765, 10946, 28657, 46368, 121393, 196418, 514229, 832040, 2178309, 3524578]
は、すべての奇数番号の用語は、モジュラス部門に失敗すべきではありませんテストして削除しますか?奇数番号のすべての用語を削除するためにforループを2回実行する必要があるのはなぜですか?
をあなたは行うだけでできるfibonacci_list = [fibonacci_list中のxのためのxの場合のx%2 == 0]リストの内包が作成されますので、とにかく新しいリスト。 –