Эффективность цикла while

191 просмотра
0
0 Комментариев

На сколько эффективно использование цикла while, чем цикл for на примере данного кода (я понимаю в емкости цикла for, но мало ли в скорости или в чем то еще)

Цикл for

a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 16, 9]
f = 1
a.sort()
for v in a:
    if str(f) in str(v):
        f += 1
    else:
        a.append(f)
        a.sort()
        print(str(a) + '\n' + str(f))
        break


Цикл while

a = [1, 2, 3, 4, 5, 6, 7, 8, 10, 16, 9]
f = 1
while f in a:
    f += 1
else:
    a.append(f)
print(str(a) + '\n' + str(f))


Добавить комментарий

2 Answers

Python Опубликовано 12.12.2018
0

На уровне байткода цикл for отличается от цикла while только операцией создания итератора:

10 CALL_FUNCTION           1
12 GET_ITER
14 FOR_ITER                12 (to 28)

вместо

10 COMPARE_OP              0 (<)
12 POP_JUMP_IF_FALSE       24

На скорость это не влияет.

Добавить комментарий
0

Скорость падает:
Генераторы — — — > Цикл на основе for — — — > Цикл на основе while.
По Лутцу вроде так, если не прав поправьте.

Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up