Подтвердить что ты не робот

Итераторы Python: Что делает iglob() Iterator для получения списка glob()?

Учитывая фрагмент кода:

from glob import glob, iglob

for fn in glob('/*'):
    print fn

print ''

for fn in iglob('/*'):
    print fn

Чтение документации для glob. Я вижу, что glob() возвращает основной список файлов и iglob Iterator. Однако я могу выполнять итерацию по обоим, и каждый из них возвращает один и тот же список файлов.

Я прочитал документацию на Iterator, но он не пролил больше света на эту тему!

Итак, какая польза от iglob(), возвращающего Iterator, предоставит мне список из glob()? Получаю ли я дополнительную функциональность по сравнению со своим старым другом в списке с низким показателем?

4b9b3361

Ответ 1

Эта разница упоминается в самой документации:

Возвращает итератор, который дает те же значения, что и glob(), фактически не сохраняя их все одновременно.

В основном список будет содержать все элементы в памяти. Итератору не нужно, и, следовательно, оно требует меньше памяти.