正在查找集合的子集



这是我的程序,用于检查arr1是否是arr2的子集。但是,当arr2不是arr1的子集时,会出现一个错误。我正在尝试在python中实现它的算法。但是,如果它不在频率表中,最好的方法是什么?

def isSubset(arr1, arr2):
frequency = {}
for i in range(0, len(arr1)):
if arr1[i] in frequency:
frequency[arr1[i]] = frequency[arr1[i]] + 1
else:
frequency[arr1[i]] = 1
for i in range(0, len(arr2)):
if frequency[arr2[i]] > 0:
frequency[arr2[i]] -= 1
else:
return False
return True
isSubset(['a'],['b']) # KeyError: 'b'

若要修复代码获得的KeyError,可以使用dict.get方法在给定不存在的键时返回默认值0。

更改:

if frequency[arr2[i]] > 0:

至:

if frequency.get(arr2[i], 0) > 0:

最新更新