首页 > 解决方案 > 我需要使用嵌套循环从低到高对 3 个数字的列表进行排序。Python

问题描述

我在 Python 中有一个函数的赋值,在函数中使用参数并给函数 3 个数字以从最低到最高排序。有时它有效,有时无效,我无法理解为什么。对此的任何启示都会对我有所帮助。谢谢你。我应该能够更改 Max(a,b,c) 以运行任何数字并产生 (1,2,3)。

def Max(a,b,c):
    while a < b:
        if b < c:
            print(a,b,c)
            return
        else:
            print(a,c,b)
            return
    while b < c:
        if c < a:
            print(b,a,c)
            return
        else:
            print(b,c,a)
            return
    while c < a:
        if a < b:
             print(c,a,b)
             return
        else:
             print(c,b,a)
             return

Max(3,1,2)

标签: python

解决方案


def Max(a,b,c):
    return sorted([a,b,c])[-1]

两行,没有任何循环。任何比这更短的都不是函数。

return max([a,b,c])可以,但我知道您出于某些原因想要对数字进行排序

编辑:您的函数被调用Max,但是在重新阅读您的帖子后,您似乎不想只返回最大值,而是所有这些都按升序排序。如果是这种情况,[-1]请从上面代码的第二行中删除,并更改函数的名称以避免混淆。

更好的是,不要创建一个函数来执行 python 开发人员为其创建的函数已经存在的任务。只需sorted()在主代码中的元素列表上使用:这是 pythonic 的方式。


推荐阅读