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

    xiaoxiao2024-03-25  101

    本节书摘来自异步社区《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节“生成一个迭代器和生成器”的相关内容。

    相关资源:Python数据科学手册(Python Data Science Handbook) 完整英文pdf 源代码
    最新回复(0)