例如: 如果a = dict(a = 1,b = 2)b = dict(a = 1,b = 2,c = 3) 当dict2包含与dict1相同的键和值时,dict1是dict2的子集
最简单的方法是什么?
这是我到目前为止所拥有的。是否有任何其他方法返回一个bool,确定dict1是否是dict2的子集?
condition = True
for a, b in dict1.items():
if dict2[a] = b:
condition = False
return condition
答案 0 :(得分:0)
我认为最简单的方法是利用集合的简单性。您必须将dicts转换为元组集。为此,您必须首先将dicts转换为元组列表,然后创建集合。之后,您将能够使用方法set.issubset:
def issubset(dict1, dict2):
# dict -> list
list1 = list(dict1.items())
list2 = list(dict2.items())
# list -> set
set1 = set(list1)
set2 = set(list2)
return set1.issubset(set2)
答案 1 :(得分:0)
只要询问all(x in b and a[x]==b[x] for x in a)
,如果subict表示与相同值相关联的相同键。它会停在第一个区别。