问题:寻找两个字典中间相同的地方(相同的键、相同的值等) 解决方案:通过keys()或者items()方法来执行常见的集合操作(比如求并集、交集和差集) 这些类型的操作也可用来修改或过滤掉字典中的内容。例如: 总结: 字典的keys()方法、items()方法支持集合操作,但是values()方法不 ...
分类:
编程语言 时间:
2016-08-07 18:28:31
阅读次数:
157
问题:创建一个字典,同时对字典做迭代或序列化操作时,也能控制其中元素的顺序; 解决方案:可以使用collections模块中的OrderedDict类来控制字典中元素的顺序。当对字典做迭代时,他会严格按照元素初始添加的顺序进行。例如: 当想构建一个映射结构以便稍后对其做序列化或编码成另一种格式时,O ...
分类:
编程语言 时间:
2016-08-07 17:04:16
阅读次数:
179
数组的定义: JavaScript 中的数组是一种特殊的对象,用来表示偏移量的索引是该对象的属性,索引可能是整数。然而,这些数字索引在内部被转换为字符串类型,这是因为 JavaScript 对象中的属性名必须是字符串。在内部被归类为数组。由于 Array 在 JavaScript 中被当作对象,因此 ...
分类:
编程语言 时间:
2016-08-07 09:37:10
阅读次数:
168
问题:一个能将键(key)映射到多个值的字典(即所谓的一键多值字典[multidict]) 解决方案:如果想让键映射到多值,需要将这多个值保持到另一个容器如列表或集合中; 更方便的创建这样的字典是利用collections模块中的defaultdict类。defaultdict的一个特点是它会自动给 ...
分类:
编程语言 时间:
2016-08-06 21:47:47
阅读次数:
189
问题:想在某个集合中找出最大或最小的N个元素 解决方案:heapq模块中的nlargest()和nsmallest()两个函数正是我们需要的。 这两个函数接受一个参数key,允许其工作在更复杂的数据结构之上: 堆(heap)最重要的特性就是heap[0]总是最小的元素。可通过heapq.heappo ...
分类:
编程语言 时间:
2016-08-06 19:06:28
阅读次数:
266
问题:要实现一个队列,它能够以给定的优先级对元素排序,且每次pop操作时都会返回优先级最高的那个元素; 解决方案:采用heapq模块实现一个简单的优先级队列 可以看出:第一次执行pop()操作时返回的元素具有最高的优先级;对于相同优先级的两个元素(foo和gork)返回的顺序同它们插入到队列时的顺序 ...
分类:
编程语言 时间:
2016-08-06 18:58:48
阅读次数:
213
问题:希望在迭代或是其他形式的处理过程中对最后几项记录做一个有限的历史记录统计 解决方案:选择collections.deque。 如下的代码对一系列文本行做简单的文本匹配操作,当发现有匹配时就输出当前的匹配行以及最后检查过的N行文本: 正如上面的代码一样,当编写搜索某项记录的代码时,通常会用到含有 ...
分类:
编程语言 时间:
2016-08-06 17:15:34
阅读次数:
237
第一章 数据结构与算法 1 赋值多个变量 *2 collections deque 构造固定大小队列,插入删除比list快3 查找最大和最小元素的N个元素 heapq nlargest() nsmallest()4 实现一个优先级队列 5 字典中的键映射多个值 collections default ...
分类:
编程语言 时间:
2016-08-01 21:20:44
阅读次数:
300
从某个可迭代对象中分解出N个元素,但是可迭代对象的长度可能超过N,会出现“分解值过多”的异常; 使用“*表达式”来解决该问题: *式用法在迭代一个变长的元组序列时尤其有用: ...
分类:
编程语言 时间:
2016-07-31 19:11:20
阅读次数:
304
如果对象是可迭代的(任何序列),则可以进行分解操作,包括元组、列表、字符串、文件、迭代器以及生成器,可通过简单的一个赋值操作分解为单独的变量。 唯一要求:变量的总数和序列相吻合,否则将出错; 注意:请确保丢弃的值选择的变量名在其他地方未曾用到过。 ...
分类:
编程语言 时间:
2016-07-31 19:01:10
阅读次数:
196