dict和set
- 字典dict使用键-值(key-value)存储,具有极快的查找速度,一个key只能对应一个value。
- 定义:
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
;
写:d['Adam'] = 67
;
读:d['Adam']
;
删除:d.pop('Bob')
。 - 判断某个key是否在dict中:
①执行'Thomas' in d
后返回Flase或者True;
②d.get('Thomas')
或d.get('Thomas', -1)
, key不存在则返回None或-1。 - dict:查找快,费内存;list:查找慢,不费内存。
- dict的key必须是不可变对象,所以list不能作为key,而字符串、整数等可以,如
key = [1, 2, 3]
。 - set是一组key的集合,但不存储value,在set中,没有重复的key。两个set可以做数学意义上的交集、并集等操作。
- 创建一个set,需要提供一个list作为输入集合,如:
定义:s = set([1, 2, 3])
(重复元素会被过滤);
添加:s.add(4)
(添加数值4到末尾);
删除:s.remove(4)
(删除数值4);
集合运算:s1&s2
、s1|s2
等。 - set中不包含可变对象,如list。
- 可变对象与不可变对象,如list为可变对象,str为不可变对象:
list1 = ['a','b','c']
str1 = 'abc'
str2 = str1.replace('a','A')
list1[2] = 'd'
执行后,list1 = ['a','b','d'],str1 = 'abc',str2 = 'Abc'
。