1.求两个字典中“键”或者“值”的并集、交集、差集、对称差集
实际上,字典中取出的键或者是值都是一个集合,那么,集合所有的操作方法均适用。
(1)求两个字典中键的并集
dict1 = {'a': 10, 'b': 20, 'c': 30}
dict2 = {'a': 1, 'd': 20, 'e': 3}
print(dict1.keys() | dict2.keys())
# 运行结果: {'a', 'e', 'd', 'c', 'b'}
(2)求两个字典中键的交集
dict1 = {'a': 10, 'b': 20, 'c': 30}
dict2 = {'a': 1, 'd': 20, 'e': 3}
print(dict1.keys() & dict2.keys())
# 运行结果: {'a'}
(3)求两个字典中键的差集(dict1中有,dict2中没有)
dict1 = {'a': 10, 'b': 20, 'c': 30}
dict2 = {'a': 1, 'd': 20, 'e': 3}
print(dict1.keys() - dict2.keys())
# 运行结果: {'b', 'c'}
(4)求两个字典中键的对称差集
dict1 = {'a': 10, 'b': 20, 'c': 30}
dict2 = {'a': 1, 'd': 20, 'e': 3}
print(dict1.keys() ^ dict2.keys())
# 运行结果: {'c', 'b', 'd', 'e'}
2.字典排序
(1)按照“值”进行简单排序(运行完成之后,结果是个列表)
dict1 = {'a': 10, 'b': 20, 'c': 30}
print(sorted(dict1.items(), key=lambda t: t[1])) # 正序
print(sorted(dict1.items(), key=lambda t: t[1], reverse=True)) # 倒序
# 运行结果:
[('a', 10), ('b', 20), ('c', 30)]
[('c', 30), ('b', 20), ('a', 10)]
(2)按照“值”进行排序,并且不改变字典类型(运行完成之后,结果是个OrderedDict对象,字典对象)
from collections import OrderedDict
dict1 = {'a': 10, 'b': 20, 'c': 30}
result_dict = OrderedDict(sorted(dict1.items(), key=lambda t: t[1]))
print(result_dict)
# 运行结果: OrderedDict([('a', 10), ('b', 20), ('c', 30)])