Python|检查一个字典是否是另一个字典的子集
有时,在使用Python时,我们可能会遇到需要查找的问题,如果特定字典是 other 的一部分,即它是 other 的子集。在 Web 开发领域具有巨大潜力的问题,具有解决知识可能会很有用。让我们讨论可以执行此任务的某些方式。
方法 #1:使用all() + items()
可以使用上述两个函数的组合来执行此任务,其中我们使用all()
检查带有原始 dict 的 subdict 的所有项目,并使用items()
获取它的每一对。
# Python3 code to demonstrate working of
# Check if one dictionary is subset of other
# Using all() + items()
# Initialize dictionaries
test_dict1 = {'gfg' : 1, 'is' : 2, 'best' : 3, 'for' : 4, 'CS' : 5}
test_dict2 = {'gfg' : 1, 'is' : 2, 'best' : 3}
# printing original dictionaries
print("The original dictionary 1 : " + str(test_dict1))
print("The original dictionary 2 : " + str(test_dict2))
# Using all() + items()
# Check if one dictionary is subset of other
res = all(test_dict1.get(key, None) == val for key, val
in test_dict2.items())
# printing result
print("Does dict2 lie in dict1 ? : " + str(res))
The original dictionary 1 : {‘CS’: 5, ‘is’: 2, ‘best’: 3, ‘gfg’: 1, ‘for’: 4}
The original dictionary 2 : {‘is’: 2, ‘best’: 3, ‘gfg’: 1}
Does dict2 lie in dict1 ? : True
方法 #2:使用items() + <= operator
执行上述任务的另一种方法是使用items()
和<=
运算符。这只是检查所有匹配的键值的少于或全部值。
# Python3 code to demonstrate working of
# Check if one dictionary is subset of other
# Using items() + <= operator
# Initialize dictionaries
test_dict1 = {'gfg' : 1, 'is' : 2, 'best' : 3, 'for' : 4, 'CS' : 5}
test_dict2 = {'gfg' : 1, 'is' : 2, 'best' : 3}
# printing original dictionaries
print("The original dictionary 1 : " + str(test_dict1))
print("The original dictionary 2 : " + str(test_dict2))
# Using items() + <= operator
# Check if one dictionary is subset of other
res = test_dict2.items() <= test_dict1.items()
# printing result
print("Does dict2 lie in dict1 ? : " + str(res))
The original dictionary 1 : {‘CS’: 5, ‘is’: 2, ‘best’: 3, ‘gfg’: 1, ‘for’: 4}
The original dictionary 2 : {‘is’: 2, ‘best’: 3, ‘gfg’: 1}
Does dict2 lie in dict1 ? : True