大坡3D软件开发

因我而不同--用软件来改变世界

5.7 copy--简单拷贝和深度拷贝对象

在Python里的赋值语句是不拷贝对象的,它只是让目标和对象之间进行绑定。对于一些可变的容器来说,有时需要修改容器的内容,但不影响之前的对象。因此本模块提供了简单拷贝和深度拷贝对象的功能。 copy.copy(x) 返回一个简单拷贝的对象。例子:#python 3.4import copy l =...

2016-01-23 21:54:12

阅读数:1815

评论数:0

5.6 array--高效的数值类型数组

本模块定义高效的数值类型数组,主要包括类型有:字符、整数、浮点数。数值类型数组与列表比较相似,主要区别在于列表可以放入不同类型的元素,而类型数组只能放入一种类型的元素。类型数组只支持下面的类型:类型字符C类型Python类型占用最小的字节备注'b'signed charint1 'B' unsig...

2016-01-23 11:18:25

阅读数:2123

评论数:0

5.5 bisect--数组的二分算法

本模块实现已经排序的队列列表插入元素之后保持排序。对于个大量数据的列表来看,插入元素并保持排序,计算量是非常大的。本模块实现了bisect算法,主要基于二分算法来实现。bisect.bisect_left(a, x, lo=0, hi=len(a)) 对有序列表a里插入元素x,保持有序不变,返回插...

2016-01-22 22:07:44

阅读数:2215

评论数:0

5.4.1 使用堆算法实现优级队列

一个优先级队列通常是使用堆算法来实现,实现优先级队列主要困难有以下几点:1)排序的稳定性:怎么样实现两个优级一样的任务时返回最先添加的任务?2)在元组比较里,如果(优先级,任务)对相同时,就没有比较的顺序了。3)如果一个任务的优先级改变了,你怎么样把它移动到堆的一个新位置上?4)当任务删除时,你怎...

2016-01-17 10:28:42

阅读数:1731

评论数:0

5.4 heapq--堆队列算法

本模块实现了堆队列算法,也叫作优先级队列算法。堆队列是一棵二叉树,并且拥有这样特点,它的父节点的值小于等于任何它的子节点的值,如果采用数组array实现,可以把它们的关系表示为:heap[k] 和 heap[k] ,对于所有k值都成立,k值从0开始计算。作为比较,可以认为不存的元素是无穷大的。堆队...

2016-01-16 18:49:21

阅读数:3740

评论数:0

5.3.7 UserDict对象

用户自定义字典类UserDict,它是封装了一个字典类dict。主要使用来拷贝一个字典的数据,而不是共享同一份数据。class collections.UserDict([initialdata]) 本类主要模拟一个字典。在类成员data里拷贝了一份字典数据,如果没有提供初始数据,就保存为空的方式...

2016-01-16 08:32:10

阅读数:1860

评论数:0

5.3.6 OrderedDict对象

有序字典与字典是一样的功能,只不过它保持插入字典的顺序,当需要遍历时会先访问最先插入的项。class collections.OrderedDict([items]) 返回一个新的dict类派生类实例,支持字典的操作方法。例子:#python 3.4import collections d = {...

2016-01-13 20:46:19

阅读数:2452

评论数:0

5.3.5 namedtuple() 创建命名字段的元组结构

在命名元组里,给每个元组的位置添加一个名称,并且可以通过名称来访问,大大地提高可读性,以便写出清晰代码,提高代码的维护性。其实它就像C++里的结构体。collections.namedtuple(typename, field_names, verbose=False, rename=False)...

2016-01-10 21:39:14

阅读数:2951

评论数:1

5.3.4 defaultdict对象

class collections.defaultdict([default_factory[, ...]]) 返回一个字典类似的对象。defaultdict是一个内置字典类dict的派生类。它主要是重载了一个方法__missing__(key)和增加一个可修改实例变量,它功能和函数跟dict类是...

2016-01-09 21:34:37

阅读数:1948

评论数:0

5.3.3.1 deque其它使用方式

在本节里提供了一些关于deque其它使用方式。提供类似UNIX中的命令tail的功能,显示一个文件最后面一段文本:def tail(filename, n=10):    '返回文件最后的n行文本'    with open(filename) as f:        return deque(...

2016-01-09 09:51:25

阅读数:1227

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭