dict字典:大括号键值对
dict全称dictionary,也称为map,使用键-值(key-value)存储,具有极快的查找速度。
相关操作
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
# 获取一个key的值,如果不存在的key,会报错
# d['Michael']
# 95
# 设置key-value,如果已存在的key,value会被覆盖,如果不存在key,则产生新key-value
d['Adam'] = 67
# 使用 in 判断是否存在key
'Thomas' in d
# False
# 使用get()获取值,如果不存在会返回 None,或指定的value
d.get('Michael')
# 95
d.get('Thomas')
# None
d.get('Thomas', -1)
# -1
# 删除key,会删除对应的key-value
d.pop('Bob')
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
set:大括号只有键没有值的dict
set和dict类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。
相关操作:
# 创建一个set需要一个list作为输入,重复的key会被过滤掉
s = set([1, 1, 2, 2, 3, 3])
print(s)
# {1, 2, 3}
# 使用 add(key) 添加元素,重复添加同一元素会被忽略
s.add(4)
print(s)
# {1, 2, 3, 4}
# 使用 remove(key) 删除元素
s.remove(key)
print(s)
# {1, 2, 3}
# set的交集和并集操作
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
print(s1 & s2)
# {2, 3}
print(s1 | s2)
# {1, 2, 3, 4}