簡體   English   中英

Python程序來計算與字典中的鍵相關聯的值

[英]Python program to count the values associated with key in a dictionary

def wut(data):
    s = 0
    for dic in data:
        for i,value in dic.items():
            if value == "True":
                s += 1
    return s

data = [{'id': 1, 'success': True, 'name': 'Lary'},
        {'id': 2, 'success': False, 'name': 'Rabi'}, 
        {'id': 3, 'success': True, 'name': 'Alex'}]
wutewa = data
print wut(wutewa)

您好,上面的代碼在送入python導師中時不會繼續檢查value=="True" ,因此我不確定我哪里出錯了。 我知道我可以使用sum函數,但是我有一個東西,如果我嘗試並使用盡可能多的數據結構,我將能夠開發出一種思維方式來進行編碼。

應該是value == True而不是value == "True"

或者,正如讓·弗朗索瓦·法布爾Jean-FrançoisFabre)所指出的那樣

if value:
     s += 1

您正在與字符串"True"而不是boolean True ,還可以使用帶有內置sum()的表達式以更Python的方式執行所需的操作,如下所示:

def wut(data):
    return sum(1 for dic in data for v in dic.values() if v is True)

查找多少個項目是“真實”值的更簡單方法是使用列表理解:

data = [{'id': 1, 'success': True, 'name': 'Lary'},
    {'id': 2, 'success': False, 'name': 'Rabi'}, 
    {'id': 3, 'success': True, 'name': 'Alex'}]

def wut(d):
   return sum(sum(bool(b) for b in i.values()) for i in d)

print(wut(data))

輸出:

8

暫無
暫無

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

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