A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘少寅 初级黑马   /  2018-8-1 23:26  /  617 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

python基本数据类型和基本操作我就不讲了,这个和java等语言并无什么大的差异,值得注意的是python里面所有数据类型都是句柄操作,也比java面向对象的特性更加深入。
Python string 字符串编码也是利用了unicode比较方便使用
python的关键数据结构:(1list ,是以[]包括起来的数据结构,然后是可变数据类型,意思是里面的句柄可以改变,增加删除元素的方法我也不说了,非常灵活,不仅可以正向取数据还可以反向下标取数据。例如[1,2,3][-1]取倒数第一个数出来第二个数据结构是tupe,list类型,但是它里面的数据句柄是不可变得,这里注意是句柄不可变不代表数据就不可变,举个例子:(1,2,3,[x,y'])这里[x,y']这个list句柄不可变,但是它里面的x,y这两个元素确实可以变的。取数的规律就像C中的二维数组,不多罗列。
接着照着语言的特性,到循环了。以前我觉得python的判断和循环怎么这么不正常,现在看起来,python的判断循环的语法糖简直太符合心意了,就像伪代码,写起来蛮简洁,这个也没什么好说的。
到了dict了,这里的dict其实就是对应的别的语言的map,是一种二维的映射关系,也是用空间换时间的一种方式,同样的和前面的list对比,也是添加删除数据都异常灵活,如果key找不到会抛出异常。而且因为是用类似hashmapkey-value查找方式,所以速度会很快,增加大量数据都不会减慢数据的查找删除工作。与此同时相比较list,当数据类较大时候,finddelete操作都要付出较大的代价。因为key需要用到hash值,所以key应该为不可变对象,这样才合理,事实也是这样。像List可变对象就不能作为hashkeytuple是可以的,经试验,tuple里面包含list然后拿去做key,结果也不行,说明了key只能是不可变对象,里面不能包含List等可变对象Dict返回值的时候还可以指定默认值这个也是个小的方便点。找不到key时候的做法,例如dict.get(9,-9)这样的合理性在于我不确定key有没有,我又不想总是去捕获没有key异常很麻烦,就可以用默认值返回作为辨识数字。然后下个有了dict,下个就是set,无他就是类似与hashset单一属性的结构,就是一个集合,和集合操作一样,重复添加相同元素没有效果,但是set是可以动态改变内容元素的,这里set就没有比较好的直接表示符号了,需要初始化时候,para=set([1,2,3]),我觉得这个表示稍显麻烦python里面str也是不可变类型,一如java等面向对象语言。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马