返回整数列表的“居中”平均值,我们会说这是值的平均值,但忽略列表中最大值和最小值除外如果存在最小值的多个副本,则只忽略一个副本,对于最大值也一样。使用整数除法产生最终平均数。您可以假设列表的长度为3或更长。”
这是我家庭作业中遇到的一个问题,我很难找到最大/最小的数字并将它们从列表中删除这是我目前所拥有的。它对我必须通过的10/14场景有效。我想这只是因为它抓住了中位数
def centered_average(nums):
x = 0
for i in range(len(nums)):
x = i + 0
y = x + 1
if y%2 == 0:
return (nums[y/2] + nums[(y/2)+1]) / 2
else:
return nums[y/2]
最佳答案
对数组进行排序无疑是更简洁的代码,这里有一个手动循环的替代方法
max_value = nums[0]
min_value = nums[0]
sum = 0
for x in nums:
max_value = max(max_value, x)
min_value = min(min_value, x)
sum += x
return (sum - max_value - min_value) / (len(nums) - 2)
这只是添加所有内容,并删除最后的最大值和最小值。
关于python - 查找列表的“中心平均值”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34184200/