python——使用dict和set
一.dict
1.dict的全称为dictionary(字典),包含key-value对(键-值对),具有极快的查找速度
定义一个姓名和年龄对应的dict:
1 #定义一个姓名和年龄的字典
2 >>> d={'Rachel':18,'Monica':20,'Joey':17,'Ross':25}
2.可以通过key直接找到对应的value
1 >>> d={'Rachel':18,'Monica':20,'Joey':17,'Ross':25}
2 >>> d['Ross']
3 25
3.key与value是一一对应的,一个key只能有一个value值,若给一个key赋多次值,只保留最后一个
1 >>> d['Ross']=30
2 >>> d['Ross']=31
3 >>> d['Ross']
4 31
4.如果字典里面不存在某一key就会报错
1 >>> d['Chandlar']
2 Traceback (most recent call last):
3 File "<stdin>", line 1, in <module>
4 KeyError: 'Chandlar'
可以通过两种方法判断key是否存在:
第一种是通过 in 判断,若存在返回True,否则返回False
1 >>> 'Monica' in d
2 True
3 >>> 'Chandlar' in d
4 False
第二种是通过dict提供的 get()方法判断,若存在则返回对应的value,不存在返回None(注意:python交互环境中不显示结果)
1 >>> d.get('Monica')
2 20
3 >>> d.get('Chandlar')
4 >>>
5.删除一个键-值对,用 pop(key)方法,key对应的value也会删除
1 >>> d.pop('Monica')
2 20
3 >>> d
4 {'Rachel': 18, 'Joey': 17, 'Ross': 31}
6.和list比较,dict有以下几个特点:
①查找和插入的速度极快,不会随着key的增加而变慢;
②需要占用大量的内存,内存浪费多。
所以,dict是一种用空间换取时间的方法。
需要注意的是,dict的key必须是不可变对象(可以是字符串、整数等类型,但不可以是一个list)
二. set
1.set和dict类似,set也是一组key的集合,但是不存储value
要创建一个set,需要提供一个list作为输入集合:
1 >>> s=set([1,2,3])
2 >>> s
3 {1, 2, 3}
2.在set中没有重复的key,重复的key会被自动过滤
1 >>> s=set([1,2,3,3])
2 >>> s
3 {1, 2, 3}
3.用 add(key)方法向set里面添加key,重复添加不会有效果
1 >>> s.add(4)
2 >>> s
3 {1, 2, 3, 4}
4 >>> s.add(3)
5 >>> s
6 {1, 2, 3, 4}
4.使用 remove(key)方法删除key
1 >>> s.remove(1)
2 >>> s
3 {2, 3, 4}
5.set可以看做数学意义上无序和无重复元素的集合,两个set可以进行数学意义上交集、并集等操作
1 >>> a=set([1,2,3])
2 >>> b=set([2,3,4])
3 >>> a&b
4 {2, 3}
5 >>> a|b
6 {1, 2, 3, 4}