素数のリストから偶数桁を含む素数をすべて削除するプログラムを作成したいと思います。Python - 素数のリストから偶数を含む素数を削除する
制限値が200の場合、このコードが正しい結果を返す理由を説明できますが、制限値が300の場合はエラーが返されますか?
def odd_primes(limit):
r = list(gen_primes(limit))
for i in r[:]:
for j in str(i):
if int(j)%2==0:
r.remove(i)
return r
ここで、gen_primes(limit)
は、すべての下限を下回るジェネレータです。
制限は= 200それは返す場合:
[3, 5, 7, 11, 13, 17, 19, 31, 37, 53, 59, 71, 73, 79, 97, 113, 131, 137, 139, 151, 157, 173, 179, 191, 193, 197, 199]
をしかし、限界が300である場合、私はこのエラーを取得する:
line 19, in odd_primes
r.remove(i)
ValueError: list.remove(x): x not in list
なぜこのような場合でしょうか?それをどうやって訂正することができますか?
gen_primes –