如何在python中找到中间数字

dam*_*mon 7 python

鉴于3个数字,我需要找到两个数字之间的数字.

即,给定3,5,2我需要返回3.

我尝试通过所有三个并使用if else条件检查每个是否在其他两个之间来实现这一点.但这似乎是一种天真的方式来做到这一点.有更好的方法吗?

Sve*_*ach 21

将它们放入列表中,对它们进行排序,选择中间列表.

  • 斯文,除了作为通用答案之外,对于3个数字的情况也是不好的.如果这种子程序出现在与计算相关的重任务中,那么即使对于Python,创建三个元素的列表并对其进行排序也是不对的.想象一下下一次工作的人,即用c ++创建一个三个数字的向量并对其进行排序...... (2认同)
  • @BasicWolf:在大多数情况下,可读性比性能更重要,在这一点上,您无法击败`sorted((a,b,c))[1]`。 (2认同)

jam*_*lak 12

>>> x = [1,3,2]
>>> sorted(x)[len(x) // 2]
2
Run Code Online (Sandbox Code Playgroud)


Zau*_*bov 8

三个数字最明显的方式

def mean3(a, b, c):
    if a <= b <= c or c <= b <= a:
        return b
    elif b <= a <= c or c <= a <= b:
        return a
    else:
        return c
Run Code Online (Sandbox Code Playgroud)


Tha*_*sas 5

你想要的是中位数。您可以将下面的代码用于任意数量的号码:

import numpy
numbers = [3,5,2]
median = numpy.median(numbers)
Run Code Online (Sandbox Code Playgroud)

如需定制解决方案,您可以访问此页面