【笔记】反向迭代

实现一个连续浮点数发生器FloatRange,产生一些连续浮点数。

实现反向迭代协议的__reversed__方法,它返回一个迭代器。

 1 class FloatRange:
 2     def __init__(self,start,end,step = 0.1):
 3         self.start = start
 4         self.end = end
 5         self.step = step
 6
 7     def __iter__(self):
 8         t = self.start
 9         while t <= self.end:
10             yield t
11             t += self.step
12
13     def __reversed__(self):
14         t = self.end
15         while t >= self.start:
16             yield t
17             t -= self.step
18
19 if __name__ == "__main__":
20
21     for x in FloatRange(1.0,4.0,0.5):
22         print x
23
24     for x in reversed(FloatRange(1.0,4.0,0.5)):
25         print x
26     
时间: 2024-10-12 18:32:49

【笔记】反向迭代的相关文章

列表正向迭代、反向迭代要注意的问题

一.列表正向迭代取值 代码如下: 执行结果: i的取值为:0,1,2,3 二.反向迭代取值 代码如下: 执行结果: i的取值为:4.3.2.1

自定义迭代器:比如输入奇数项,反向迭代等

有时需要自定义一个迭代模式,如以0.5的步长迭代,或者只输出奇数项,反向迭代等 所谓的迭代器其实也是使用了next方法,所以,只要 合理利用next,就可以达到目的: #!/usr/bin/env python #coding:utf-8 #@Author:Andy #Date: 2017/6/13 def frange(start, stop, step): """ Use yield to set a new iteration pattern such as float

DL学习笔记-反向传播算法的理解

作者:杜客链接:https://zhuanlan.zhihu.com/p/21407711来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 译者注:本文智能单元首发,译自斯坦福CS231n课程笔记Backprop Note,课程教师Andrej Karpathy授权翻译.本篇教程由杜客翻译完成,堃堃和巩子嘉进行校对修改.译文含公式和代码,建议PC端阅读. 原文如下: 内容列表: 简介 简单表达式和理解梯度 复合表达式,链式法则,反向传播 直观理解反向传播 模块:Si

angular学习笔记(七)-迭代1

本篇介绍angular中元素的迭代: <!DOCTYPE html> <html ng-app> <head> <title>4.1.迭代</title> <meta charset="utf-8"> <script src="../angular.js"></script> <script src="script.js"></scr

angular学习笔记(七)-迭代2

视图的迭代和它的ng-repeat属性绑定的数据是实时绑定的,一旦数据发生了改变,视图也会立即更新迭代. 还是刚才的那个例子,给它添加一个添加数据按钮和一个删除数据按钮. <!DOCTYPE html> <html ng-app> <head> <title>4.1.迭代</title> <meta charset="utf-8"> <script src="../angular.js"&

angular学习笔记(七)-迭代3

每个迭代项中还有以下三个变量: $first: 判断是否是迭代第一项,如果是,得到true,如果不是,得到false $middle: 判断是否迭代中间项(既不是第一项也不是最后一项的都是中间项),如果是,得到true,如果不是,得到false $last: 判断是否是迭代最后项,如果是,得到true,如果不是,得到false 然后继续刚才的实例,要求第一名的名字颜色显示粉红色,最后一名的名字颜色显示灰色,其余中间排名的都显示紫色: <!DOCTYPE html> <html ng-ap

caffe学习笔记3.1 -- caffe的三级结构

在caffe教程中,介绍了caffe的三级结构:Blobs, Layers,Nets.如下图所示: 深度网络是一个复杂的模型,caffe定义了一个层与层之间连接的网络模型.这个网络定义了从输入层到损失的所有模型.caffe使用blobs结构存储,交换和处理网络中正向和反向迭代时的数据和导数信息,blob是Caffe的标准数组结构,它提供了一个统一的内存接口.Layer是Caffe模型和计算的基本单元.Net是一系列的Layer和其连接的集合,Blob详细描述了信息是如何在Layer和net中存储

《C++ Primer Plus》学习笔记10

<C++ Primer Plus>学习笔记10 <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&

django学习笔记(二)模板

1.当模板中的变量名遇到点时,以下面的顺序查找(短路逻辑): (1)字典类型查找: >>> from django.template import Template, Context >>> person = {'name': 'Sally', 'age': '43'} >>> t = Template('{{ person.name }} is {{ person.age }} years old.') >>> c = Contex