Python判断dictA是否包含dictB

Python判断dictA是否包含dictB(或者说dict B是dict A的子集):

dict1 = {
    "a": 1,
    "b": 2,
    "c": 3
}

dict2 = {
    "a": 1,
    "b": 2
}

dict3 = {
    "a": 1,
    "b": 3
}

dict4 = {
    "a": 1,
    "d": 4
}

dict5 = {
    "a": 1,
    "b": 2,
    "c": 3
}

def dict_contains(c_dict, f_dict):
    return all(item in f_dict.items() for item in c_dict.items())

if __name__ == '__main__':
    print("====== Python3+使用 d1.items() <= d2.items() =======")
    print("dict1包含dict2:", dict2.items() <= dict1.items())  # 子集在前,父集在后
    print("dict1包含dict3:", dict3.items() <= dict1.items())
    print("dict1包含dict4:", dict4.items() <= dict1.items())
    print("dict1包含dict5:", dict5.items() <= dict1.items())
    print("dict2包含dict1:", dict1.items() <= dict2.items())
    print("====== Python2使用 all(item in d2.items() for item in d1.items()) =======")
    print("dict1包含dict2:", dict_contains(dict2, dict1))
    print("dict1包含dict3:", dict_contains(dict3, dict1))
    print("dict1包含dict4:", dict_contains(dict4, dict1))
    print("dict1包含dict5:", dict_contains(dict5, dict1))
    print("dict2包含dict1:", dict_contains(dict1, dict2))

运行结果:

====== Python3+使用 d1.items() <= d2.items() =======
dict1包含dict2: True
dict1包含dict3: False
dict1包含dict4: False
dict1包含dict5: True
dict2包含dict1: False
====== Python2使用 all(item in d2.items() for item in d1.items()) =======
dict1包含dict2: True
dict1包含dict3: False
dict1包含dict4: False
dict1包含dict5: True
dict2包含dict1: False
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值