求列表中位数Python

题目描述

给你一个整数列表L, 输出L的中位数(若结果为小数,则保留一位小数)。
例如: L=[0,1,2,3,4]
则输出:2

题目来源于PythonTip,中位数的计算取决于元素的个数,如果元素个数为奇数个,直接取中间的下标即可,如果为偶数,需要计算中间两个的和,再取平均值。但是python需要注意整除和除法与其他语言不一样。


def solve_it():
    L.sort()
    if len(L) % 2 == 0:
        sub = L[len(L) // 2 - 1] + L[len(L) // 2]
        if sub % 2 == 0:
            result = sub // 2
        else:
            result = round(sub/2.0, 1)    # 这里需要注意,除以2.0,或者可以乘以0.5,但是不能除以2,原因未知
    else:
        result = L[len(L) // 2]
    return result
    
print(solve_it())  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值