【Python学习日记】迭代器
class Fib:'''迭代器例子'''def __init__(self, vmax):self.max = vmaxdef __iter__(self):self.a = 0self.b = 1return selfdef __next__(self):fib = self.aif fib > self.max:raise StopIterationself.a, self.b = self.b, self.a + self.breturn fib
类实例创建后,__init__()
方法被立即调用。很容易将其——但技术上来说不正确——称为该类的“构造函数” 。 很容易,因为它看起来很像 C++ 的构造函数(按约定,__init__()
是类中第一个被定义的方法),行为一致(是类的新实例中第一片被执行的代码), 看起来完全一样。 错了, 因为__init__()
方法调用时,对象已经创建了,你已经有了一个合法类对象的引用。
每个方法的第一个参数,包括 __init__()
方法,永远指向当前的类对象。 习惯上,该参数叫 self。 该参数和c++或Java中 this
角色一样, 但 self 不是 Python的保留字, 仅仅是个命名习惯。 虽然如此,请不要取别的名字,只用 self; 这是一个很强的命名习惯。
在 __init__()
方法中, self 指向新创建的对象; 在其他类对象中, 它指向方法所属的实例。尽管需在定义方法时显式指定self ,调用方法时并 不 必须明确指定。 Python 会自动添加。
迭代器工具库
import itertoolsnames = list(open('favorite-people.txt', encoding='gb2312'))
print(names)
names = [name.rstrip() for name in names]
print(names)
names = sorted(names)
print(names)
names = sorted(names, key=len)
print(names)groups = itertools.groupby(names, len)
print(list(groups))
#调用list() 函数会“耗尽”这个迭代器,
#也就是说 你生成了迭代器中所有元素才创造了这个列表。
#迭代器没有“重置”按钮。你一旦耗尽了它,你没法重新开始。
#如果你想要再循环一次(例如, 在接下去的for循环里面),
#s你得调用itertools.groupby()来创建一个新的迭代器。
groups = itertools.groupby(names, len)
for name_length, name_iter in groups:print('Names with {0:d} letters:'.format(name_length))for name in name_iter:print(name)def mydef(name):return name[0]groups = itertools.groupby(names, mydef)
for name_length, name_iter in groups:print('Names with {0:s} letters:'.format(name_length))for name in name_iter:print(name)
>>> list(range(0, 3))
[0, 1, 2]
>>> list(range(10, 13))
[10, 11, 12]
>>> list(itertools.chain(range(0, 3), range(10, 13)))
[0, 1, 2, 10, 11, 12]
>>> list(zip(range(0, 3), range(10, 13)))
[(0, 10), (1, 11), (2, 12)]
>>> list(zip(range(0, 3), range(10, 14)))
[(0, 10), (1, 11), (2, 12)]
>>> list(itertools.zip_longest(range(0, 3), range(10, 14)))
[(0, 10), (1, 11), (2, 12), (None, 13)]
转载于:https://www.cnblogs.com/joyber/p/4344100.html
【Python学习日记】迭代器相关推荐
- 菜菜的Python学习日记 | 正则表达式你必须了解的知识点
系列索引:菜菜的Python学习日记 | Python从入门到入土详解 文章目录 常用规则 Python对正则表达式的支持 常用规则 符号 解释 示例 说明 . 匹配任意字符 b.t 可以匹配bat ...
- Python学习日记-day1基础篇 字符 输出 注释
Python学习日记-day1基础篇 字符 输出 注释 by北栀一刺 # -*- coding: utf-8 -*- """ Spyder EditorThis is a ...
- python学习日记(第一周)
python学习日记(第一周) 前言: 无论出于什么目的,学个程序语言吧.之前学过一点点基础语法,然后就搁置了两年,日记仅作为个人记录,有问题还望不吝赐教 其实这玩意儿应该每次学一部分记录一部分的,好 ...
- Python学习日记-pandas操作学习
Python学习日记-pandas模块学习 根据需求筛选数据 绘制柱状图-利用pandas绘制 绘制柱状图-利用matplotlib绘制 绘制柱状图-两组数据比较 绘制柱状图-叠加柱状图 绘制饼状图 ...
- 菜菜的Python学习日记 | Python类实验代码分享
系列索引:菜菜的Python学习日记 | Python从入门到入土详解 Python类实验代码分享 编写程序,实现以下功能. (1)创建员工类Employee,属性有姓名name.能力值ability ...
- python学习日记2-3周
python学习日记2-3周 怠惰怠惰 improt 导入 import phone.apple.iphone6 import phone.apple.iphone7 import phone.sam ...
- Python学习日记——罗马数字转整数
Python学习日记004--罗马数字转整数 题目来源:LeetCode题库--罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 ...
- [Python学习日记] 文件与文件系统(一)
[Python学习日记] 文件与文件系统(一) 目录 Python3 File(文件) 方法 open() 方法 file 对象 目录 Python3 File(文件) 方法 open() 方法 Py ...
- Python学习:迭代器与生成器
1.生成器 如果创建一个有很多元素的列表,但是只需要访问前几个元素,后面的元素占着的空间就白白浪费了 在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间. 在Pyt ...
- Python学习日记:求解由四个数字组成的四位数个数
看见这个问题时,我们很容易想到我们学习过的排列组合知识点:显然用四个数字组成四位数(这些四位数互不相同)就是一个关于排列的问题:用数学的方法可以知道.那么怎么用Python运行解决呢?这就是本次学习日 ...
最新文章
- BGR图像与HSV图像互相转换(opencv)
- vault-使用kubernetes作为认证后端
- JavaScript中数组的增删改查以及应用方式
- Winform中跨窗体设置ZedGraph的属性并刷新曲线图
- MySQL数据库的datetime与timestamp
- Java—Remove Deplicates from Sorted Array(顺序数组中去重位置)
- Meta http-equiv 大全
- tt c mysql t4 bll_通过T4模板实现代码自动生成
- 《SaaS架构设计》新书SD会议首发签售
- iOS开发之理解iOS中的MVC设计模式
- Jquery 中 ajaxSubmit使用笔记
- 蓝牙sbc怎么解决_你不知道蓝牙耳机术语,看懂了才明白哪些是优质蓝牙耳机
- 相关系数、相关指数和回归系数等概念含义
- 点击图标分享页面到QQ,微信,微博 等
- 大规模服务设计部署经验
- linux dd 备份uboot,刷机前如何备份uboot、分区、编程器固件?路由器刷机备份命令使用方法...
- 内网穿透 natApp
- 【大话Java面试】-如何通俗易懂的理解Redis的回收算法LRU?
- ZedBoard的初步学习-通信设置
- (带手机版数据同步)新闻博客类网站源码 新闻文章资讯博客网站织梦模板
热门文章
- Transformer预训练模型已经变革NLP领域,一文概览当前现状
- 【模型压缩】Only Train Once:微软、浙大等研究者提出剪枝框架OTO,无需微调即可获得轻量级架构...
- 他曾经复读才考上三本,如今让华为开出 201 万年薪(其实还拒绝了 360 万 offer)...
- 读《scikiit-learn机器学习》支持向量机
- 超详细Hexo+Github博客搭建小白教程
- poj3614(Sunscreen)优先队列+贪心
- python基础9-常见难点
- 吴恩达深度学习——目标检测
- Java网络编程之客户端中的Socket
- GTUG的推荐给大家的一本书