簡體   English   中英

python計算嵌套字典中的出現值

[英]python counting occurrences value in nested dictionary

我一直無法找到計算值的解決方案。

data = {"members": {
    "1": {
        "name": "burek",            
        },
        "status": {
            "description": "Online",
            "state": "Busy",
            "color": "green",
        },
        "position": "seller"
    },{
    "2": {
        "name": "pica",         
        },
        "status": {
            "description": "Offline",
            "state": "Idle",
            "color": "red",
        },
        "position": "waiting"
    },{
    "3": {
        "name": "strucko",          
        },
        "status": {
            "description": "Online",
            "state": "Busy",
            "color": "green",
        },
        "position": "backside"
    }}

現在我可以數鑰匙了:

def count(d, k):
 return (k in d) + sum(count(v, k) for v in d.values() if isinstance(v, dict))

但是在找出計算價值的方法時遇到很多麻煩。

print(count(data, 'Online'))

我希望結果是 2。

一種方法:

def count(d, k):
    current = 0
    for di in d.values():
        if isinstance(di, dict):
            current += count(di, k)
        elif k == di:
            current += 1
    return current


res = count(data, "Online")
print(res)

輸出

2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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