我有產品串列,我需要根據產品評分計算每個類別的平均評分。問題是我不知道每個類別中的類別和產品的確切數量。
所以基本上里面有n個類別和m個產品,需要計算每個類別的平均評分并回傳平均評分最高的類別的名稱。
愿望輸出:The best category is "phone" with average rating of "910"
串列結構:
"products": [
{
"category": "pc",
"rating": 1000,
},
{
"category": "pc",
"rating": 800,
},
{
"category": "phone",
"rating": 860,
},
{
"category": "phone",
"rating": 960,
},
]
uj5u.com熱心網友回復:
嘗試:
data = {
"products": [
{
"category": "pc",
"rating": 1000,
},
{
"category": "pc",
"rating": 800,
},
{
"category": "phone",
"rating": 860,
},
{
"category": "phone",
"rating": 960,
},
]
}
from statistics import mean
tmp = {}
for p in data["products"]:
tmp.setdefault(p["category"], []).append(p["rating"])
tmp = {k: mean(v) for k, v in tmp.items()}
for k, v in tmp.items():
print("Category:", k)
print("Average:", v)
print()
best = max(tmp, key=tmp.get)
print(f"Best average: {best} Average: {tmp[best]}")
印刷:
Category: pc
Average: 900
Category: phone
Average: 910
Best average: phone Average: 910
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/519933.html
