簡體   English   中英

尋找集合的子集

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM