dict
Python内置了字典:dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。
d = {'Michael':95, 'Bob':75, 'Tracy':85} print(d['Tracy']) # 85
由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉。
d['Bob'] = 100 print(d['Bob']) # 100
如果key不存在,dict就会报错。要避免key不存在的错误,我们可以通过in判断key是否存在,或者用get()方法(如果key不存在,可以返回None,或者自己指定的value)。
'Thomas' in d # False d.get('Thomas') # None d.get('Thomas', -1) # -1
要删除一个key,用pop()方法
d.pop('Bob') print(d) # {'Michael':95, 'Tracy':85}
和list相比,dict有一下几个特点:
1、查找和插入的速度极快,不会随着key的增加而变慢;
2、需要占用大量的内存,内存浪费多。
set
集合(set)是一个无序不重复元素的序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
s = set([1, 2, 3]) print(s) # {1, 2, 3} s = set([1, 1, 2, 3, 2, 3]) print(s) # {1, 2, 3} s = {1, 1, 2, 3, 2, 3}
通过add(key)方法可以添加元素到set,通过remove(key)方法可以删除元素。
s.add(4) s.update(4) # 可以添加元素,且参数可以是列表,元组,字典等 s.remove(4) # 移除集合中的元素,如果元素不存在,则会发生错误 s.discard(4) # 移除集合中的元素,如果元素不存在,不会发生错误 s.pop() # 随机删除集合中的一个元素 s.clear() # 清空集合
set可以看成数学意义上的无序和无重复元素的集合,因此,俩个set可以做数学意义上的交集、并集等操作。
s1 = set([1, 2, 3]) s2 = set([2, 3, 4]) print(s1 & s2) # {2, 3} print(s1 | s2) # {1, 2, 3, 4}