Итераторы 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()? Получаю ли я дополнительную функциональность по сравнению со своим старым другом в списке с низким показателем?
Ответы
Ответ 1
Эта разница упоминается в самой документации:
Возвращает итератор, который дает те же значения, что и glob(), фактически не сохраняя их все одновременно.
В основном список будет содержать все элементы в памяти. Итератору не нужно, и, следовательно, оно требует меньше памяти.