6 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個贊
my_dict = {"first": 100, "second": 0, "third": 200}
def dictavg(your_dict):
return sum(your_dict.values())/len(your_dict)
print(dictavg(my_dict))

TA貢獻(xiàn)1799條經(jīng)驗(yàn) 獲得超9個贊
您不能將以下語句與字典一起使用:
for k, v in dict:
相反,有一種方法可以分別使用方法 keys() 或 values() 來接收字典的鍵列表或值。這些方法返回字典鍵或字典值的列表,然后您可以迭代它們。還有一個方法可以返回鍵和值的元組列表 - items()。
所以這些都應(yīng)該適合你:
my_dict = {"first": 100, "second": 0, "third": 200}
def avg(dicti):
total_sum=0
count=0
for key in dicti.keys():
sum += dicti[key]
count +=1
return(sum/count)
result = avg(my_dict)
print(result)
或者:
my_dict = {"first": 100, "second": 0, "third": 200}
def avg(dicti):
total_sum=0
count=0
for value in dicti.values():
sum += value
count +=1
return(sum/count)
result = avg(my_dict)
print(result)

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超21個贊
直接傳遞您的字典,而不是通過**字典解包運(yùn)算符。在你的函數(shù)中進(jìn)行解包:迭代dict.items給出鍵值對,但在這里你可以使用dict.values.
另外,永遠(yuǎn)不要隱藏內(nèi)置函數(shù)。所以不要使用dict,sum等作為變量名。
這會起作用:
def avg(d):
val_sum = 0
count = 0
for v in d.values():
val_sum += v
count += 1
return(val_sum/count)
result = avg(my_dict) # 100.0
您還可以使用內(nèi)置函數(shù)sum和len:
result = sum(my_dict.values()) / len(my_dict.values())
或使用statistics.mean:
from statistics import mean
result = mean(my_dict.values()) # 100
添加回答
舉報(bào)