Iterators de Python: Que fournit l'Iterator d'iglob () sur la liste de glob ()?
Donné le morceau de code:
from glob import glob, iglob
for fn in glob('/*'):
print fn
print ''
for fn in iglob('/*'):
print fn
La lecture de la la documentation pour glob je vois que glob() retourne une liste de base des fichiers et iglob un Itérateur. Cependant, je suis capable de parcourir à la fois et de la même liste de fichiers est retournée par chacun d'eux.
J'ai lu la documentation sur Itérateur mais ce n'est pas jeter plus de lumière sur le sujet vraiment!
Alors, quels sont les avantages d'iglob() pour retourner un Itérateur de me fournir la liste de glob()? Dois-je prendre plus de fonctionnalités par rapport à mon vieil ami, le humble liste?
source d'informationauteur ghickman
Vous devez vous connecter pour publier un commentaire.
La différence est mentionné dans la documentation elle-même:
Fondamentalement liste aura tous les éléments en mémoire. Itérateur n'a pas besoin, et par conséquent, il nécessite moins de mémoire.
Ajoutant à amit réponse. iglob() est utile dans le cas particulier où, si vous supprimez un répertoire dans la liste, les fichiers et les dossiers dans la liste seront stockées par glob (), et donc plus d'accès à la boucle throws exception. Mais en utilisant iglob (), nous pouvons surmonter les les modifications simultanées exception