您现在的位置:首页 > 教育孩子 > 文章

Python函数式编程指南(三):迭代器

日期:2019-06-12

  杰纳利·阿克拉姆在致辞中表示,一直以来中国在环保方面采取了重要的措施,实施了重要的项目,得到全球各国认同。5月28日是阿塞拜疆国庆日,今天在阿塞拜疆展园举行了庆祝活动,得到北京世园会组委会和北京世园局的大力支持。

  这句话易于理解,却常思常新、常做常新。学者要做勇立时代潮头的先行者、解放思想的推动者、重大问题的研究者,这样才能推进学术创新。学者是为社会提供专业知识和智慧的,是社会中具有专业理性和学术信用的一分子,是与各行各业和谐相处的专业人。法学研究者应坚持学者身份和学者方式,尤其应牢记法学学科的实践性,与党政机关、立法机关、司法机关、教研机构建立起融洽关系,恪守学者责任,做好法学研究者应该做好的事。

Python函数式编程指南(三):迭代器

这一篇我们将讨论迭代器。 迭代器并不是函数式编程特有的东西,但它仍然是函数式编程的一个重要的组成部分,或者说是一个重要的工具。 转载请注明原作者和原文地址:)3.迭代器迭代器(Iterator)概述迭代器是访问集合内元素的一种方式。

迭代器对象从集合的第一个元素开始访问,直到所有的元素都被访问一遍后结束。

迭代器不能回退,只能往前进行迭代。 这并不是什么很大的缺点,因为人们几乎不需要在迭代途中进行回退操作。 迭代器也不是线程安全的,在多线程环境中对可变集合使用迭代器是一个危险的操作。

但如果小心谨慎,或者干脆贯彻函数式思想坚持使用不可变的集合,那这也不是什么大问题。 对于原生支持随机访问的数据结构(如tuple、list),迭代器和经典for循环的索引访问相比并无优势,反而丢失了索引值(可以使用内建函数enumerate()找回这个索引值,这是后话)。

但对于无法随机访问的数据结构(比如set)而言,迭代器是唯一的访问元素的方式。 迭代器的另一个优点就是它不要求你事先准备好整个迭代过程中所有的元素。

迭代器仅仅在迭代至某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。

这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件,或是斐波那契数列等等。 这个特点被称为延迟计算或惰性求值(Lazyevaluation)。

迭代器更大的功劳是提供了一个统一的访问集合的接口。

只要是实现了__iter__()方法的对象,就可以使用迭代器进行访问。

使用迭代器使用内建的工厂函数iter(iterable)可以获取迭代器对象:。

教育宝提供的文章均由网友转载于网络,若本站转载中的文章侵犯了您的权益,请与本站管理员联系.
Copyright (C) 2013-2019 教育宝www.35155z.com All Rights Reserved.