Как ускорить перебор строк?

Рейтинг: 1Ответов: 1Опубликовано: 21.04.2023

Как ускорить перебор строк по началу в списке?

data = [str(x) for x in range(1000000)]
string = "145723"


for i in data:
    if i.startswith(string):
        ...

Какой алгоритм может ускорить этот процесс? (без нумбы)

Ответы

▲ 1

Не надо перебирать лишние элементы и не надо перебирать строки:

def numbers(n, m):
    k = 1
    while m < n:
        yield from range(m, m + k)
        m *= 10
        k *= 10


for i in numbers(10000000, 145723):
    print(i)
$ python numbers.py
145723
1457230
1457231
1457232
1457233
1457234
1457235
1457236
1457237
1457238
1457239