[英]Printing unique keys from nested dictionary in python
我有一個帶有 2 個內部字典的字典dict_matches
。
dict_match
的結構如下:
dict_match = {Query_ID:{Function_ID:{DB_ID:[func_ID]}}}
在鍵Query_ID
,我遍歷這些並將它們與完全獨立的 dict query_count_dict
中的鍵進行比較,以確定鍵的重疊。
在這個循環中,我還導航到dict_matches
中的基本字典,以查看主密鑰與哪些密鑰DB_ID
'匹配'。 我的問題是,對應於頂級鍵Query_ID
這個較低級別的鍵DB_ID
可以重復(我只想查看唯一鍵)。 我嘗試使用 set() 方法,但這實際上將字符串鍵拆分為其字符組件,並為每個較低級別的鍵打印唯一字符。 任何幫助表示贊賞!
見下面的代碼
for k,v in dict_match.items():
if k in query_count_dict.keys():
print(k)
detection_query.append(k)
print(len(dict_match[k])/int(query_count_dict[k]))
if type(v) is dict:
recursive_items(v)
其中 recursive_items 是導航到基本字典的函數:
def recursive_items(dictionary):
for k, v in dictionary.items():
if type(v) is dict:
recursive_items(v)
else:
print(set(k))
您可以通過在遞歸函數中傳遞鍵列表來打印所有唯一鍵,以便在導航到基時存儲它們。 然后將其轉換為設置以刪除重復項。
def get_keys(dictionary, keys=[]):
for k, v in dictionary.items():
keys.append(k)
if isinstance(v, dict):
get_keys(v, keys)
return set(keys)
dict_match = {'A': {'A': {'B': [0], 'H': [0]}, 'D': {'C': [0], 'A': [0]}},
'B': {'C': {'A': [0]}, 'G': {'A': [0]}},
'C': {'A': {'E': [0]}, 'B': {'F': [0], 'A': [0]}, 'C': {'B': [0]}}}
print(get_keys(dict_match))
它只會輸出唯一的鍵:
{'G', 'B', 'E', 'F', 'C', 'H', 'A', 'D'}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.