【Python3自学笔记6】—使用dict和set

时间:2016.10.25

摘录自:廖雪峰Python3.5教程

内容:使用dict和set


一、dict

dict是一种映射容器,使用(key-value)存储,具有极快的查找速度。

d = {'xiaomin':70.'xiaohong':80,'chen':90}可以发现dict使用{}包含。

1)通过key找到value:d[‘xiaohong’] 回车 80

2)向dict中放入数据:d['tom'] = 60。由于dict中key与value一一对应,对于一个key,后面加入的value会覆盖前面添加的value。

3)如果dict中没有key会报错,为了避免出现这种情况。可以通过两种方法判断可以是否在dict中。

a)通过in判断:'chen' in d 回车 True

b)通过get判断: d.get('jame') 回车 因为d中没有这个key因此返回None(python交互式命令行不显示)。也可以自己知道返回值。d.get('jame',-1)

4)删除一个key,用pop(key),对应的value也会被删除。

dict存放的特点:

1)插入和查找的速度极快,不会随着key的增加而增加(通过索引表里查这个value存放的内存地址,直接将它读取出来)。

2)dict内部存放的顺序和key放入的顺序没有关系。

3)需要占用大量的内存,内存浪费多。

list存放的特点:

1)插入和查找的速度随着元素的增加而减慢(必须找到list中key值存放的位置,再去查找另一个list中对应位置的value值)。

2)占用的空间小,浪费内存很少。

注:dict中可以必须是不可变对象。因为dict根据key来计算value的存储位置,如果计算相同可以得出的结果不同,那dict内部就完全混乱了。

这种通过key计算位置的算法称为哈希算法(Hash)。python中字符串、整数等都是不可变的,因此,可以放心地作为key。而list是可变的就不能作为key。


二、set

set内只能存放key没有value,且set内如有重复的key会被剔除。

set的初始化有一个list完成 x=([1,2,3]),在这个set中有三个元素。

向set中添加元素x.add(4)

从set中删除元素x.remove(3)

set与set之间可以做&和|这样的数学运算。


你可能感兴趣的:(python)