Python查找列表的最小最大值和平均值(数组)

mtk*_*lic 11 python arrays max min

我很难弄清楚如何从列表中找到min例如

somelist = [1,12,2,53,23,6,17]

如何使用define(def)函数找到此列表的最小值和最大值

我不想使用内置函数 min

mon*_*kut 40

from __future__ import division

somelist =  [1,12,2,53,23,6,17] 
max_value = max(somelist)
min_value = min(somelist)
avg_value = sum(somelist)/len(somelist)
Run Code Online (Sandbox Code Playgroud)

如果要手动查找最小值作为函数:

somelist =  [1,12,2,53,23,6,17] 

def my_min_function(somelist):
    min_value = None
    for value in somelist:
        if not min_value:
            min_value = value
        elif value < min_value:
            min_value = value
    return min_value
Run Code Online (Sandbox Code Playgroud)

Python 3.4引入了statistics包,它提供了mean额外的统计信息:

from statistics import mean, median

somelist =  [1,12,2,53,23,6,17]
avg_value = mean(somelist)
median_value = median(somelist)
Run Code Online (Sandbox Code Playgroud)

  • 我认为如果你弄清楚并自己写出来是最好的.如果您有理解的问题,请询问. (3认同)
  • 我想指出,该平均值很容易被0除错. (2认同)

小智 5

返回元组中的最小值和最大值:

def side_values(num_list):
    results_list = sorted(num_list)
    return results_list[0], results_list[-1]


somelist = side_values([1,12,2,53,23,6,17])
print(somelist)
Run Code Online (Sandbox Code Playgroud)

  • @Baldrick:实际上,min() 和 max() 是 O(n)。因此,排序较慢。 (8认同)
  • 这是使用内置函数查找最小值/最大值的最佳方法。排序是 O(nlogn),得到最小值/最大值是 O(1) (2认同)
  • @Hinni 排序后 min 位于索引“0”,max 位于索引“length”(反之亦然)。一旦排序,就不需要使用 `min()` 或 `max()` 来查找这些值。 (2认同)