簡體   English   中英

如何在一個鍵下創建一個包含多個值的特殊字典?

[英]How to create a special dictionary with multiple values under one key?

school = [['dia', 87], ['ria', 100], ['gud', 59], ['ria', 85], ['gud', 76], ['don', 99]]

這個數組包含學生和他們的標記(是的,有一些重復的學生有diff值)。

我想把它轉換成這個字典來找到平均得分:

school_dict = { dia:[87], ria:[100,85], gud:[59,76], don:[99] }

讓我知道是否有人可以為我解決這個問題。

res = {}
for x in school:
    res.setdefault(x[0],[]).append(x[1])
print(res)      

產量

{'dia': [87], 'ria': [100, 85], 'gud': [59, 76], 'don': [99]}

從性能的角度來看,defaultdict比dict.setdefault()更快,所以你也可以使用它:

from collections import defaultdict
school = [['dia', 87], ['ria', 100], ['gud', 59], ['ria', 85], ['gud', 76], ['don', 99]]
d = defaultdict(list)
for s in school:
    d[s[0]].append(s[1])
print(dict(d))

輸出:

{'dia':[87],'ria':[100,85],'gud':[59,76],'don':[99]}

請遵循以下步驟: setdefault vs defaultdict性能,用於與性能相關的討論。

暫無
暫無

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

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