错误:列表索引必须是整数,而不是中位数的浮点数

时间:2016-04-22 21:29:26

标签: python

试图找到中位数,但保持获取列表索引必须是整数,而不是浮点错误,我不知道该怎么做。

sorted_data = sorted(data, key=lambda d:d.all_around_points_earned)
if len(data)%2==0:
    a = sorted_data[len(data)/2]
    b = sorted_data[len(data)/2-1]
    median_val = (a+b)/2
else:
    median_val = sorted_data[(len(data)-1)/2]
print(median_val) # median val

2 个答案:

答案 0 :(得分:1)

如果你使用的是Python3,如果len(data)/2是奇数,len(data)会返回一个浮点数。使用//代替/来获取整数结果。

答案 1 :(得分:0)

statistics module是标准库的一部分:

import statistics

data = [1, 2, 3, 4]
statistics.median(data)