[英]Finding subset of a set
这是我检查 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:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.