Python 字典和集合
字典的每个键值对用冒号分割,键值对之间用逗号分隔,所有键值对包括在{}中。
d = {key1 : value1, key2 : value2 }
键必须是唯一的,值可以不唯一。值可以取任何数据类型,但键必须是不可变对象,如字符串,数字或元组。
字典内置方法
dict.keys() # 返回一个迭代器
dict.values() # 返回一个迭代器
dict.items() # 返回一个迭代器
dict[key] # 返回键对应的值
dict.get(key,None) # 返回指定键对应的值,如果没有则返回 None(也可以指定为其他值)
dict.setdefault(key,Value) # 返回指定键对应的值,如果没有则添加该键到字典中并将值设置为 Value
dict.pop(key) # 删除一个 key,并返回 value
del dict[key] # 删除一个 key
dict[key] = value # 添加一个键值对
dict.update(dict2) # 把字典 dict2 元素添加到字典 dict
dict.clear() # 清空字典
key in dict # 判断 key 是否在字典中
字典和列表比较
-
字典是按键查找,速度极快,不会随着 key 的增加而变慢;列表是按顺序查找,查找的速度随着元素的增加而变慢。
-
字典占用内存空间大,列表占用内存空间小。
集合是一个无序的不重复元素序列。
集合基本操作
s = set() # 创建集合
s.copy() # 拷贝集合
s.add() # 添加可哈希类型的元素(数字、字符串、元组)
s.update() # 添加不可哈希类型的元素(列表、字典)
s.remove() # 移除指定元素,如果不存在,产生 KeyError 异常
s.discard() # 移除指定元素,如果不存在,不会报错
s.pop() # 随机移除一个元素
s.clear() # 移除所有元素
x in s # 判断元素是否在集合中
s.intersection(s2) # 返回集合的交集
s.union(s2) # 返回集合的并集
s.difference(s2) # 返回集合的差集,存在于集合 s 中不存在于集合 s2 中的元素
s.symmetric_difference(s2) # 返回两个集合中不重复的元素集合
s.intersection_update(s2) # 移除集合 s 中不存在于集合 s2 中的元素
s.difference_update(s2) # 移除集合 s 中存在于集合 s2 中的元素
s.symmetric_difference_update(s2) # 移除集合 s 中存在于集合 s2 中的元素,且添加集合 s2 中不存在于集合 s 中的元素