#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:
строки кода.