zoukankan      html  css  js  c++  java
  • 对python生成器特性使用的好例子

     1 1.对序列进行分组的函数(摘自web.py源码utils.py文件中)
     2 def group(seq, size): 
     3     """
     4     Returns an iterator over a series of lists of length size from iterable.
     5 
     6         >>> list(group([1,2,3,4], 2))
     7         [[1, 2], [3, 4]]
     8         >>> list(group([1,2,3,4,5], 2))
     9         [[1, 2], [3, 4], [5]]
    10     """
    11     def take(seq, n):
    12         for i in xrange(n):
    13             yield seq.next() #当seq迭代到最后一个元素直到没有时,抛出StopIteration被外层的list()捕获
    14     if not hasattr(seq, 'next'):
    15          seq = iter(seq) 
    16     while True:  
    17         inger=take(seq, size) 
    18         x = list(inger) 
    19         if x: 
    20               yield x 
    21         else: 
    22               break                      
  • 相关阅读:
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
    LeetCode
  • 原文地址:https://www.cnblogs.com/aveenzhou/p/3753161.html
Copyright © 2011-2022 走看看