Я хочу написать программу, которая удаляет все простые числа, содержащие четную цифру из списка простых чисел.Python - Удаление простых чисел, содержащих четное число из списка простых чисел
Может ли кто-нибудь объяснить, почему этот код возвращает правильный результат, если limit = 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 –