您的位置:首页 > 编程语言 > Python开发

【笔记】Python算法教程(2)---树的实现、黑盒子

2017-07-03 09:52 337 查看
1、没有内置list类型的语言,还有另一种常见的树的实现方式,即采取“先子节点,后兄弟节点”的表示方法。每一个树节点都有两个用于引用其他节点的“指针”或属性。第一个引用指向的是当前节点的第一个子节点,第二个引用所指向的是其下一个兄弟节点。各个节点所应用的是一个(其子节点的)兄弟节点链表。

2、当树这样的数据结构被原型化时,往往是一个非常有用灵活的类型,允许我们在其构造器中设置任何属性。bunch设计模式。

 bunch设计模式能让我们以命令行参数的形式创建相关对象,并设置任何属性;由于它继承自dict类,可以自然而然地获得大量相关的内容。

3、要注意两个地方:被隐藏的性能陷阱,即相关操作看起来似乎足够好了,但可能由一个线性操作变成平方级操作;第二个是指存在于各种浮点运算中的操作。

4、list:成员查询是线性级别的;往某个集合里面新加一个数,并且检查是否已被添加,这是平方级别

      set:成员查询是常数级别;往某个集合里面新加一个数,并且检查是否已被添加,这是线性级别

      双向队列(deque)优于在某个list首端插入对象

5、Python中有join()和os.path.join()两个函数,具体作用如下:

    join():    连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串

    os.path.join():  将多个路径组合后返回

    join()函数

    语法:  'sep'.join(seq)

    参数说明:

    sep:分隔符。可以为空

    seq:要连接的元素序列、字符串、元组、字典

    上面的语法即:以sep作为分隔符,将seq所有的元素合并成一个新的字符串

    返回值:返回一个以分隔符sep连接各个元素后生成的字符串

6、Python的元组与列表类似,不同之处在于元组的元素不能修改。 

元组使用小括号,列表使用方括号。 

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
创建空元组

tup1 = ();

元组中只包含一个元素时,需要在元素后面添加逗号

tup1 = (50,);

元组与字符串类似,下标索引从0开始,可以进行截取,组合等。

7、不要对浮点数进行等值比较。在需要进行这种运算的场合下,可以使用round函数。

     还可以使用decimal模块,这样就使用的是精确的十进制浮点数表示法。

from decimal import *
sum(Decimal("0.1") for i in range(10))==Decimal("1.0")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: