我实际上使用 Google Chart API 和 Flask。我从我的数据库中检索数据,然后将它们添加到我的列表中。
我的 list :
[['Swimming', 4], ['Football', 4], ['Football', 2]], [['Swimming', 2]
例如,我想获得 'Football' 的平均值,所以有 ['Football', 3]。 'Swimming' 也是如此。所以预期的输出将是:
[['Swimming', 4], ['Football', 3]]
我该怎么做?
代码:
def get_quotation_by_activity(self, id_child):
cursor = self.link.cursor()
try:
cursor.execute("SELECT previous_activity, quotation FROM sessions, sessions_questions_asked WHERE sessions.id = sessions_questions_asked.id_session AND child=%s;", [id_child]);
quotation_activity = []
quotation_activity_mean = []
for row in cursor:
quotation_activity.append([row[0], row[1]])
except (Exception, psycopg2.DatabaseError) as error:
print(error)
return []
print(quotation_activity)
#Some tests..
'''for i in quotation_activity:
activity = i[0]
quotation = i[1]
if not i in quotation_activity_mean:
quotation_activity_mean.append(i)'''
print(quotation_activity_mean)
return quotation_activity
@app.route("/statistics")
def stats():
quotation_activity = db.get_quotation_by_activity(6)
return render_template('statistics.html', quotation_activity= quotation_activity)
请您参考如下方法:
您可以使用字典作为临时变量:
values = [['Swimming', 4], ['Football', 4], ['Football', 2], ['Swimming', 2]]
result = {}
for activity, quotation in values:
if activity in result:
result[activity].append(quotation)
else:
result[activity] = [quotation]
final_result = [[name, sum(quotations) / len(quotations)] for name, quotations in result.items()]
print(final_result)
返回:
[['Swimming', 3.0], ['Football', 3.0]]
