试图找到中位数,但保持获取列表索引必须是整数,而不是浮点错误,我不知道该怎么做。
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
答案 0 :(得分:1)
如果你使用的是Python3,如果len(data)/2
是奇数,len(data)
会返回一个浮点数。使用//
代替/
来获取整数结果。
答案 1 :(得分:0)
statistics
module是标准库的一部分:
import statistics
data = [1, 2, 3, 4]
statistics.median(data)