Как оптимизовать код при MemoryError?
Есть такой код:
a = 565754545445
print([x for x in str(list(range(1, a + 1)))])
Если я попытаюсь его запустить, то получу:
>>> MemoryError
Знаю как исправить с помощью сторонних библиотек. Но есть ли вариант сделать это только с помощью базовых возможностей Python?
По большому счету, выводить весь этот лист не нужно. Нужно лишь узнать сколько раз в этом дипазоне встречается конкретная цифра, например 9. То есть вот так:
a = 100
print(len([i for i in str(list(range(1, a + 1))) if i == '9']))
Это работает для небольших чисел. Например, 100. Но хотелось бы понять, как сделать то же самое для огромных чисел.
Источник: Stack Overflow на русском