《Python数据科学指南》——1.10 使用可迭代对象

本节书摘来自异步社区《Python数据科学指南》一书中的第1章,第1.10节,作者[印度] Gopi Subramanian ,方延风 刘丹 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.10 使用可迭代对象

可迭代对象和生成器十分相似,但是有一个重要的区别:我们可以重复地访问一个可迭代对象,即使我们已经访问完了序列中的所有元素,我们还可以从头重新访问它,这和生成器是完全不同的。

如果不保持任何状态,它们就是基于对象的生成器。所有带有iter方法的类,在用来产生数据时,都可以被作为无状态对象生成器来使用。

1.10.1 准备工作

我们通过一个简单的示例来理解可迭代对象。如果理解了之前介绍的生成器和迭代器,你也能很容易地理解这个概念。

1.10.2 操作方法

我们来创建一个简单的可迭代对象SimpleIterable,用代码来演示如何使用可迭代对象。

# 1.先创建一个简单的带有iter方法的类
class SimpleIterable(object):
    def __init__(self, start, end):
        self.start = start
        self.end = end
    def __iter__(self):
        for x in range(self.start,self.end):
            yield x**2

# 2.现在调用这个类,并且迭代它的值两次
c = SimpleIterable(1,10)

# 3.第一次迭代
tot = 0
for val in iter(c):
    tot+=val
print tot

# 4.第二次迭代
tot =0
for val in iter(c):
    tot+=val

print tot

1.10.3 工作原理

在第1步中,我们创建了一个简单的类作为我们的可迭代对象。Init构造函数有两个参数,起始和结束,这和我们之前的示例很相似。我们定义了一个iter函数,它将提供我们需要的序列,给定一个数值范围,返回这些数的平方值。

接下来,我们采用两个循环,在第1个循环中,我们迭代访问范围内的数值,从1到10。当我们进入第2个for循环时,我们会发现程序又迭代访问了那些序列,并且没有出现任何异常情况。

1.10.4 参考资料

第1章“Python在数据科学中的应用”中1.8节“使用迭代器”的相关内容。

第1章“Python在数据科学中的应用”中1.9节“生成一个迭代器和生成器”的相关内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值