一、数据类型
不可变数据类型:元祖、bool,int,str→可哈希hash
可变数据类型:list,dict,set→不可哈希
二、字典
字典的优点:可按照二分查找去查询,储存大量的关系型数据。包含了可哈希和不可哈希的优点。
dict.setdefault():有键值对,不做任何改变,没有的键值对才添加;
dict.pop(‘key’,‘提示’):删除,如存在key,则删除,不存在返回提示,一定加提示,不然会报错。
dict.popitem():随机删除,无太大意义,返回值元祖,删除的键值。
删除时,尽量使用pop,不然容易报错,而且pop有返回值。
三、小知识点汇总及编码进阶
1、python2:print→不用加();xrange(),raw input()
python3:print()→只能加();range(),input()
2、数字、字符串(有小数据池,如果不超出范围,则共用数据池,节省内存空间)
两个变量赋的值一样时,比如a=2,b=2:
数字范围(小数据池):-5~256
字符串:不能有特殊字符串;s(一个字符)*20还是痛一个内存地址,超过20就是不同的内存地址。
3、list/dict/tuple/set无小数据池的概念,比如:
l1=[1,2,3]
l2=[1,2,3]
print(l1 is l2)→输出结果为False
四、字符串
1.python3版本中:
str在内存中是用unicode编码储存的,所以不适合用于处理大量数据,也不能传输和存储。
2.bytes类型(也是一种数据类型,以gbk,utf-8等编码的)
对于英文:str→表现形式:s=‘abc’→编码方式:unicode
bytes:表现形式:s=‘abc’→编码方式:utf-8,gbk
对于中文:str→表现形式:s=‘中国’→编码方式:unicode
bytes→表现形式:s=b’x\e91\ed\e21\e31\e32’(难于理解)→编码方式:utf-8,gbk
3.str转换为bytes:bytes=str.encode(‘utf-8’)
五、集合set
1.集合定义:无序的,可变的数据类型,里面的元素必须是不可变的数据类型,不重复。
交集:set1.intersection(set2)或set1&set2
并集:set1.union(set2)或set1\set2
反交集:set1.symmentric_difference(set2)或set1^set2
差集:set1.difference(set2)或set1-set2→set1独有的,去掉交集
子集:set1.issubset(set2)或set1<set2→set1是set2是的子集
超集:set2.isupperset(set1)或set2>set1→set2是set1的超集
2.将set转为不可变的类型:frozenset(’’)