6 回答

TA貢獻1836條經驗 獲得超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貢獻1799條經驗 獲得超9個贊
您不能將以下語句與字典一起使用:
for k, v in dict:
相反,有一種方法可以分別使用方法 keys() 或 values() 來接收字典的鍵列表或值。這些方法返回字典鍵或字典值的列表,然后您可以迭代它們。還有一個方法可以返回鍵和值的元組列表 - items()。
所以這些都應該適合你:
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貢獻1842條經驗 獲得超22個贊
直接傳遞您的字典,而不是通過**字典解包運算符。在你的函數中進行解包:迭代dict.items給出鍵值對,但在這里你可以使用dict.values.
另外,永遠不要隱藏內置函數。所以不要使用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
您還可以使用內置函數sum和len:
result = sum(my_dict.values()) / len(my_dict.values())
或使用statistics.mean:
from statistics import mean
result = mean(my_dict.values()) # 100
添加回答
舉報