使用for循环计算列表中数字的平均值

时间:2016-11-15 04:07:26

标签: python numpy for-loop max min

程序应丢弃最小和最大的数字,并计算并显示剩余数字的平均值。到目前为止,我认为我应该导入函数numpy以获得平均值,但我不知道如何将for循环放入其中。

import numpy

numbers = input('Enter any list of numbers(seperated by any commas): ')

n2 = numpy.mean(numbers)
print(n2)

2 个答案:

答案 0 :(得分:1)

您错过了将输入转换为数字列表的步骤。如果您正在使用python 2.x,则输入()就像您正在使用它一样,将返回numpy.mean()可以处理的数字元组。如果你使用python3,input()返回一个字符串,必须将其解析为数字。

python 2.x版本:

import numpy
numbers = input('Enter any list of numbers(seperated by any commas): ')
n2 = numpy.mean(numbers)
print(n2)

python 3版本:

import numpy
numbers = input('Enter any list of numbers(seperated by any commas): ')
num_list = [int(x) for x in numbers.split(',')]
n2 = numpy.mean(num_list)
print(n2)

答案 1 :(得分:0)

你的问题不是很清楚。您想要计算值数组的平均值,并且您有一个方法可以为您完成。为什么需要for循环?

但是,您的输入是一个字符串,因此您必须在处理之前将其转换为数组。这有点复杂,似乎超出了你的问题,所以我只假设numbers已经是一个数组。

您想要删除最小值和最大值,这样就可以这样做:

numbers.remove(max(numbers))
numbers.remove(min(numbers))

然后只需调用mean方法:

numpy.mean(numbers)

如果你真的想使用for循环,这里是计算均值的方法(这是numpy的作用,但是以更加优化的方式):

mean = 0
for value in numbers:
    mean += numbers
mean /= len(numbers)