开发者社区> 问答> 正文

使用生成器创建新的迭代模式

你想实现一个自定义迭代模式,跟普通的内置函数比如 range() , reversed() 不一样。

展开
收起
哦哦喔 2020-04-16 21:27:31 1110 0
1 条回答
写回答
取消 提交回答
  • 如果你想实现一种新的迭代模式,使用一个生成器函数来定义它。 下面是一个生产某个范围内浮点数的生成器:
    
    def frange(start, stop, increment):
        x = start
        while x < stop:
            yield x
            x += increment
    为了使用这个函数, 你可以用for循环迭代它或者使用其他接受一个可迭代对象的函数(比如 sum() , list() 等)。示例如下:
    
    >>> for n in frange(0, 4, 0.5):
    ...     print(n)
    ...
    0
    0.5
    1.0
    1.5
    2.0
    2.5
    3.0
    3.5
    >>> list(frange(0, 1, 0.125))
    [0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875]
    >>>
    
    2020-04-16 21:27:43
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
4个迭代,从批量交...1573957773.pdf 立即下载
用计算和数据去改变整个世界 立即下载
图计算优化技术探索 立即下载