基本上我有一个包含数据和价格的元组列表,例如:
[ ("2013-02-12", 200.0), ("2012-02-25", 300.0), ("2000-03-04", 100.0), ("2000-03-05", 50.0)]
该函数需要找到每个月的平均股票价值,然后返回一个包含日期(月和年)和股票价格的元组列表。就像是:
[(250.0, "02-2013"), (100.0, "03-2000"), (50.0, "03-2000")]
这是我到目前为止的代码:
def average_data(list_of_tuples = []):
list_of_averages = []
current_year_int = 2013
current_month_int = 2
sum_float = float()
count = 0
for dd_tuple in list_of_tuples:
date_str = dd_tuple[0]
data_float = dd_tuple[1]
date_list = date_str.split("-")
year_int = int(date_list[0])
month_int = int(date_list[1])
date_year_str = "Date: " + str(month_int) + "-" + str(year_int);
if month_int != current_month_int:
average_float = sum_float / count
average_list = [date_year_str, average_float]
average_tuple = tuple(average_list)
list_of_averages.append(average_tuple)
current_month_int = month_int
sum_float += data_float
sum_float += data_float
count += 1
current_month_int = month_int
current_year_int = year_int
return list_of_averages
它返回一个平均值,但不是正确的,也许不是全部?我曾尝试在互联网上查看示例并询问我的 TA(这是针对 python 类的),但无济于事。有人能指出我正确的方向吗?
编辑:根据建议,if 语句现在应该是这样的,对吗?
if month_int != current_month_int:
average_float = sum_float / count
average_list = [date_year_str, average_float]
average_tuple = tuple(average_list)
list_of_averages.append(average_tuple)
current_month_int = month_int
sum_float = 0.0
count = 0
sum_float += data_float
count += 1
编辑:感谢大家的帮助!我现在已经运行了代码。