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}
原文地址:https://www.cnblogs.com/canneddream/p/14158072.html