请问问题在哪里Python

def median(numbers):
    ls2=sorted(ls)
    print(ls2)
    k=numbers//2
    if numbers%2==0:
        k1=float(ls2[k])
        k2=float(ls2[k-1])
        med=(k1+k2)/2
    if numbers%2!=0:
        med=ls2[numbers//2]
    return med

如果输入1.234, 5.678, 9.012, 3.456, 7.890, 1.234
那个新的ls2的课表会出现['1.234', ' 9.012', ' 7.890', ' 5.678', ' 3.456', ' 1.234']
最后一个不应该是放在第一个吗

img


你写的出现的结果里的值包含空格,估计是这个原因,我用下面这个代码跑的第二个结果跟你错误的差不多,不知道你的为什么反过来了。

def median(numbers):
    ls2=sorted(ls)
    print(ls2)
    k=numbers//2
    if numbers%2==0:
        k1=float(ls2[k])
        k2=float(ls2[k-1])
        med=(k1+k2)/2
    if numbers%2!=0:
        med=ls2[numbers//2]
    return med

if __name__ == "__main__":
    ls = [1.234, 5.678, 9.012, 3.456, 7.890, 1.234]
    print(median(len(ls)))

    ls = ['1.234', ' 5.678', ' 9.012', ' 3.456', ' 7.890', ' 1.234']
    print(median(len(ls)))

结果是

[1.234, 1.234, 3.456, 5.678, 7.89, 9.012]
4.567
[' 1.234', ' 3.456', ' 5.678', ' 7.890', ' 9.012', '1.234']
6.784