迭代器模式是针对集合对象而生的,对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把遍历操作放在集合对象中,但这样的话,集合对象既承担太多的责任了,面向对象设计原则中有一条就是单一职责原则,所有我们要尽可能地分离这些职责,用不同的类取承担不同的责任, ...
分类:
其他好文 时间:
2020-07-12 17:12:04
阅读次数:
61
起因 迭代器生成器一直很迷,简单的记录一下区别 迭代器 什么是迭代? 我理解的迭代,就是使用for循环遍历一个(字符串,列表···)把里面的值一个一个的遍历出来 这个遍历的过程就可以称之为迭代 什么是迭代器? 提供迭代方法的容器 常用迭代器: 序列(列表、元组、字符串)、字典 内置函数 iter() ...
分类:
编程语言 时间:
2020-07-12 17:10:45
阅读次数:
59
你肯定用过的容器、可迭代对象和迭代器 容器这个概念非常好理解。我们说过,在Python 中一切皆对象,对象的抽象就是类,而对象的集合就是容器。 列表(list: [0, 1, 2]),元组(tuple: (0, 1, 2)),字典(dict: {0:0, 1:1, 2:2}),集合(set: set ...
分类:
其他好文 时间:
2020-07-12 10:36:57
阅读次数:
48
写在前面 本系列目的:一篇文章,不求鞭辟入里,但使得心应手。 迭代是数据处理的基石,在扫描内存无法装载的数据集时,我们需要一种惰性获取数据的能力(即一次获取一部分数据到内存)。在Python中,具有这种能力的对象就是迭代器。生成器是迭代器的一种特殊表现形式。 个人认为生成器是Python中最有用的高 ...
分类:
编程语言 时间:
2020-07-11 20:58:15
阅读次数:
56
一、递归与迭代 二、什么是迭代器协议 1、迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个stopiteration异常,已终止迭代(只能往后走不能往前退) 2、可迭代对象:实现了迭代器协议的对象(如何实现:对象内部定义一个__iter__()方法) 3 ...
分类:
编程语言 时间:
2020-07-11 19:47:04
阅读次数:
68
# 用列表推导式做下列小题 # 1.过滤掉长度小于3的字符串列表,并将剩下的转换成大写字母 l1 = ['string', 'str', 'st'] li = [i.upper() for i in l1 if len(i) < 3] # 2.求(x,y)其中x是0-5之间的偶数,y是0-5之间的奇 ...
分类:
其他好文 时间:
2020-07-11 12:32:38
阅读次数:
73
equal_range()根据键值,返回一对迭代器的pair对象。 如果该键值在容器中存在,则pair对象中的第一个迭代器指向该键关联的第一个实例,第二个迭代器指向该键关联的最后一个实例的下一位置。 如果找不到匹配的元素,则pair对象中的两个迭代器都将指向此键应该插入的位置。 算法lower_bo ...
分类:
其他好文 时间:
2020-07-10 09:35:51
阅读次数:
55
定制比较规则: 1.内部比较器|自然排序 要当前比较的类型实现一个借口Comparable接口,重写compareTo方法,方法的内部制定比较规则 硬编码习惯,不够灵活,每次修改源代码 @Override public int compareTo(Person o) { return o.age-t ...
分类:
其他好文 时间:
2020-07-09 22:17:11
阅读次数:
74
需求 文章根据创建时间排序,用户可以给文章分,影响排序,用户指定时间只能打一次分,不能重复打。文章支持分组 key定义 /** * content表的id生成器 * */ public final static String CONTENT_ID_GENERATOR="cs:id:generator ...
分类:
其他好文 时间:
2020-07-09 15:28:27
阅读次数:
73
一.迭代器分析:想一下,如果把集合对象和对集合对象的操作放在一起,当我们想换一种方式遍历集合对象中元素时,就需要修改集合对象了,违背“单一职责原则”,而迭代器模式将数据结构和数据结构的算法分离开,两者可独立发展。 优点: 1.支持多种遍历方式。比如有序列表,我们根据需要提供正序遍历、倒序遍历两种迭代 ...
分类:
Web程序 时间:
2020-07-09 13:44:07
阅读次数:
68