擅长:python、mysql、java
<p>你的方法有两个问题,一个是你确定的问题,另一个是如果这个项目出现了三次,平均值计算不正确。要解决这一问题,一种方法是对时间求和,但也要分别记录出现的次数,然后计算平均值作为第二步。你知道吗</p>
<pre><code>item_list = [['Boots of Speed', 50],
['Health Potion', 60],
['Health Potion', 80],
['Dorans Blade', 120],
['Dorans Ring', 180],
['Dorans Blade', 200],
['Dorans Blade', 200],
['Dorans Blade', 200],
['Dorans Ring', 210]]
item_dict = {}
for item in item_list:
item_name = item[0]
time_of_purchase = item[1]
if (item_name in item_dict):
# Add the duplicate item in
item_dict[item_name] = item_dict[item_name][0] + time_of_purchase, item_dict[item_name][1] + 1
else:
# First time recording this item
item_dict[item_name] = (time_of_purchase, 1)
for item_name in item_dict.keys():
purchase_time = item_dict[item_name][0]
purchase_count= item_dict[item_name][1]
print("%-15s - %u" % (item_name, purchase_time/purchase_count))
</code></pre>