pythonで中央値を取得する2つの方法

通常の方法:

リストを並べ替えてから、奇数または偶数の長さに基づいて中央値を計算します

def huahua(x):
    length = len(x)
    print(length)
    x.sort()
    print(x)
    if (length % 2)== 1:
        z=length // 2
        y = x[z]
    else:
        y = (x[length//2]+x[length//2-1])/2
    return y


l = [1,2,3,7,5,6,4,9,8,10]
print(huahua(l))

一番いい方法:

反転法を使用して中央値を見つけます。並べ替え後の結果はl = [1,2,3,4,5,6,7,8,9,10]、長さは10、half = 10 // 2 =です。 5、x [5]はリストの6桁目、5の逆数は-6、x [-6]は実際にはリストの逆検索、リストの5桁目、長さは偶数です。 10時の中央値は5+ 6/2 = 5.5です。

結果がl = [1,2,3,4,5,6,7,8,9]の場合、長さは9、half = 9 // 2 = 4、x [4]はリストの5桁目です。 、4は-5に反転され、x [-5]はリストの順方向および逆方向検索の5桁目であるため、x [4] == x [-5]、中央値はx [4]です。またはx [-5]。

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def median(data):
    data.sort()
    half = len(data) // 2
    return (data[half] + data[~half])/2


l = [1,2,3,7,5,6,4,9,8,10]
if __name__ == '__main__':
    print(median(l))

おすすめ

転載: blog.csdn.net/sinat_38682860/article/details/108826818