Performance Advantages to Iterators?

后端 未结 9 1803
梦毁少年i
梦毁少年i 2020-11-28 10:45

What (if any) performance advantages are offered by using iterators. It seems like the \'Right Way\' to solve many problems, but does it create faster/more memory-conscious

9条回答
  •  旧时难觅i
    2020-11-28 11:28

    To backup the @Christian Witts's answer:

    range vs. xrange performance

    python25 -mtimeit "for i in xrange(1000): pass"
    10000 loops, best of 3: 56.3 usec per loop
    
    python25 -mtimeit "for i in range(1000): pass"
    10000 loops, best of 3: 80.9 usec per loop
    
    python26 -mtimeit "for i in xrange(1000): pass"
    10000 loops, best of 3: 48.8 usec per loop
    
    python26 -mtimeit "for i in range(1000): pass"
    10000 loops, best of 3: 68.6 usec per loop
    

    btw, neither range() nor xrange() are iterators:

    >>> hasattr(range(1), 'next')
    False
    >>> hasattr(xrange(1), 'next')
    False
    >>> iter(xrange(1))
    
    >>> iter(range(1))
    
    >>> iter([])
    
    >>> iter(i for i in (1,))
    
    >>> (i for i in (1,))
    
    

提交回复
热议问题