我有一個串列,里面有多個dict()。
以下是我的串列:
[{'clicks': 1.2195121951219512, 'conversions': 1.4227642276422763, 'cpc': 2.2357723577235773, 'cpm': 4.471544715447155, ' reach': 90.65040650406505},
{'clicks': 1.2048192771084338, 'versions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm'/span>: 5.622489959839357, ' reach': 89.5582329317269}]
我的最終目標是用上述資料的平均值制作一個單一的資料。
例子:
[{'clicks': 1.2048192771084338, 'conversions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm': 5.622489959839357, ' reach': 89.5582329317269}]
我的問題是,我如何一次訪問和比較來自多個dict的鍵呢?
是否有更好的方法來做?
謝謝。我對編程非常陌生
uj5u.com熱心網友回復:
試試這個...
lst = [{'clicks': 1.2195121951219512, 'conversions': 1.4227642276422763, 'cpc'/span>: 2.2357723577235773, 'cpm': 4.471544715447155, ' reach': 90.65040650406505},
{'clicks': 1.2048192771084338, 'versions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm'/span>: 5.622489959839357, ' reach': 89.5582329317269}]
res = {}
keys_ = ['clicks'/span>, 'conversions'/span>, 'cpc'/span>, 'cpm'/span>, 'reach'/span>]
for j in keys_:
temp = [i[j] for i in lst]
res[j] = sum(temp)/len(temp)
print(res)
或者你也可以試試這個單行代碼
print({j: sum([i[j] for i in lst])/len([i[j] for lst])。 keyword">for i in lst]) for j in lst[0] 。 keys()})
如果它不作業,請告訴我......
。uj5u.com熱心網友回復:
如果串列中的所有字典都有相同的鍵,你可以使用:
from statistics import mean
lst = [
{
"clicks"。1.2195121951219512,
"轉換率": 1.4227642276422763,
"cpc": 2.2357723577235773,
"cpm": 4.471544715447155,
"reach": 90.65040650406505,
},
{
"clicks": 1.2048192771084338,
"轉換率": 1.4056224899598393,
"cpc": 2.208835341365462,
"cpm": 5.622489959839357,
"reach": 89.5582329317269,
},
]
out = {k: mean(d[k] for d in lst) for k in lst[0] }
print(out)
列印:
{
"clicks"。1.2121657361151925,
"轉換率": 1.4141933588010578,
"cpc": 2.2223038495445193,
"cpm": 5.047017337643256,
"reach": 90.10431971789598,
}
uj5u.com熱心網友回復:
我希望下面的代碼能幫助你理解如何找到多個dict專案串列的平均值
# your list of dict items.
dlist = [{'clicks': 1.2195121951219512, 'versions': 1.4227642276422763, 'cpc': 2.2357723577235773, 'cpm': 4.471544715447155, ' reach': 90.65040650406505},
{'clicks': 1.2048192771084338, 'versions': 1.4056224899598393, 'cpc': 2.208835341365462, 'cpm'/span>: 5.622489959839357, ' reach': 89.5582329317269}]
newdict = {}
for d in dlist:
for k, v in d.items():
if k in newdict:
newdict[k].append(v)
else:
newdict[k] = [v].
# 從新的dict中找到平均值。
for key, value in newdict.items()。
newdict[key] = sum(value)/len(value)。
print(newdict)
輸出
{'clicks': 1.2121657361151925,
'conversions': 1.4141933588010578,
'cpc': 2.2223038495445193,
'cpm': 5.047017337643256,
'reach': 90.10431971789598}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/325719.html
標籤:
下一篇:合并兩個具有特定條件的串列
