在不使用排序函数的情况下查找中值

San*_*r G 1 python median

作为家庭作业,我必须编写一个脚本,在不使用Python的标准排序函数的情况下查找3个给定数字的中位数.

这是我上课的第一周和我的第一次编程经历,所以我觉得很难比现在更进一步.

这是我到目前为止所拥有的:

def med3(a,b,c):
    list = [a, b, c]
    newlist = []
    if list:
        minimum = list[0]
        for x in list:
            if x < minimum:
                minimum = x
                newlist.append(minimum)
                list.remove(minimum)
            elif x >= minimum:
                newlist.append(x)
                list.remove(x)

    return newlist[1]
Run Code Online (Sandbox Code Playgroud)

这似乎可以解决问题,但仅适用于列表的前两个条目.循环不包括第三个条目.

如何让脚本包含所有三个条目?

提前致谢!桑德

gor*_*um0 6

sum([a, b, c]) - min(a, b, c) - max(a, b, c) - 没有排序!