Проверка, является ли iterable пустым перед циклом while

#python-3.x #performance #for-loop #iterable #is-empty

#python-3.x #Производительность #для цикла #итерируемый #is-empty

Вопрос:

Недавно мне пришлось создавать динамически изменяющиеся списки, которые я просматриваю в основном цикле. Но они изначально пусты и иногда могут быть пустыми. Вот два случая:

 # The first one
iterable = []
if iterable:
    for i in iterable:
        # do sth

# and the second
iterable = []
for i in iterable:
    # do sth
  

Мне интересно, есть ли какая-то разница в производительности этих 2 случаев, или пустая проверка уже реализована в цикле for?

Комментарии:

1. Вы можете тривиально попробовать это самостоятельно. Подсказка: for обрабатывает и пустую последовательность просто отлично.

Ответ №1:

Когда вы выполняете итерацию по переменной define list, вы не сталкиваетесь с какими-либо проблемами, посмотрите:

 >>> iterable=[]
>>> for x in iterable:
    print(x)

>>> 
  

Проверка пустоты выполняется автоматически для вас.

Итак, предпочтительнее использовать второй фрагмент кода в вашем вопросе, потому что в нем нет избыточной if iterable: строки кода.