python 字典比较、排序

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)])
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值