加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何用python编写自定义生成器函数

发布时间:2020-12-20 11:49:13 所属栏目:Python 来源:网络整理
导读:我有这个 for A in [0,-0.25,0.25,-0.5,0.5,-0.75,0.75,-1.0,1.0,-1.25,1.25,-1.5,1.5,-1.75,1.75,-2.0,2.0,-2.25,2.25,-2.5,2.5,-2.75,2.75,-3.0,3.0,-3.25,3.25,-3.5,3.5,-3.75,3.75,-4.0,4.0,-4.25,4.25,-4.5,4.5,-4.75,4.75,-5.0,5.0]: 是否可以使用发电
我有这个

for A in [0,-0.25,0.25,-0.5,0.5,-0.75,0.75,-1.0,1.0,-1.25,1.25,-1.5,1.5,-1.75,1.75,-2.0,2.0,-2.25,2.25,-2.5,2.5,-2.75,2.75,-3.0,3.0,-3.25,3.25,-3.5,3.5,-3.75,3.75,-4.0,4.0,-4.25,4.25,-4.5,4.5,-4.75,4.75,-5.0,5.0]:

是否可以使用发电机功能?我现在有这个:

def frange(start,stop,step=1.0):
    while start <= stop:
        yield start
        start += step

并使用这样的:

for error in self.frange(-2.5,0.25):

但它的回报[-2.5,…,2.5],对于我的程序,它很难计算.因为我发现价值几乎为零,但我不知道它可能有多少组合.

我需要从零开始,下一个值必须是减号和正值.
比如[0,0.25 …].

解决方法

也许你的意思是发电机而不是lambda:

def opposing_numbers(increment,maximum):
     yield 0
     value = increment
     while value <= maximum:
         yield -value
         yield value
         value += increment

然后将其称为:

opposing_numbers(0.25,5)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读