一、python2与3的差别
在2中,range是一个数字列表
xrange是一个可迭代对象
在3中,range是一个可迭代对象
没有xrange
二、dict
dict长什么样?
一个key对应一个value,key是唯一的。
在字典查询过程中,计算机采用hash算法,每个key会匹配到一个数字,然后采用二分查找法查找数字,所以字典的优点是查询速度飞快。
tips:在3.5之前,字典都无序,3.6之后加入了一个机制,使字典有序。
1. 数据类型的分类
可变:不可hash,进行操作后,原数据直接改变。
不可变:可hash,进行操作时,其实是在内存中生成一个新备份,对它进行操作,所以原数据不变。
字典的key只能是不可变的数据类型。
2.字典的增删改查
增:
dic = {'name': 'leon', 'age': 99, 'hobby': 'pig'}
dic['score'] = 100
dic.setdefault('HP', 1)
setdefault如果这个key存在,则不变,不存在则添加。
删:
dic.clear()
dic.pop('hobby', -2)
del dic['hobby']
print(dic.popitem()) # 随机删除(删除最后一个item)
改:
dic['name'] = 'leonraw'
dic2 = {'name': 'leonraw', 'age': 100, 'HP': -1}
dic.update(dic2)
查:
print(dic['name'])
print(dic.keys())
print(dic.values())
print(dic.items())
for k, v in dic.items():
print(k, v)
dic.get('name', -1) # 找不到的话,返回值默认为None