所以,我的任务是获得列表的居中平均值,就像这里的一些其他帖子一样(https://codereview.stackexchange.com/questions/108404/how-to-get-a-centered-mean-excluding-max-and-min-value-of-a-list-in-python)和其他几个。但是,我的教授告诉我们,我们不允许使用min,max或sort来解决这个问题。所以我现在所拥有的是,它仍在进行中:
def centered_average(nums):
high=0
low=0
a=0
b=0
for i in range(len(nums)):
if nums[i]>a:
a=nums[i]
high=a
for i in range(len(nums)):
if nums[i]<b:
b=nums[i]
low=b
total=sum(nums)
average=(total-high-low)/(len(nums)-2)
print(average)
我的问题是,我无法将其识别为列表中的最低编号。例如,如果我输入[1,2,3,4,5]作为列表,我的函数应该返回5作为高,1作为低,3作为居中平均,因为2 + 3 + 4是9 / 3 = 3。然而,我所拥有的东西将低点返回0.我认为这是因为(镜头(nums)因为它会认为第一个数字是0.我不知道应该如何解决这个问题。< / p>
注意:我仍然是这个东西的初学者,所以我知道我所拥有的可能不是最好的,或者错误可以很容易修复,但我仍然在学习的过程中所以任何帮助和建议将不胜感激。
答案 0 :(得分:0)
问题是您以app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.post('/upload', function (req, res) {
console.log('hari :'+req.body.purpose);
timeNow = Date.now();
var jobID = timeNow + '_' + Math.floor((Math.random() * 10000000000000) + 1);
var rethinkObj = config.rethinkdb;
var data = {
"id": jobID,
"finished_at": timeNow,
"last_update": timeNow,
"log": "add job",
"process_instructions": "",
"start_at": timeNow,
"status": "in-progress"
}
rethink.insertDataIntoTable(rethinkObj, data).then(function(insertedData){
console.log(insertedData);
console.log('new row inserted into RethinkDB', data.id);
uploadFile(req, res, jobID);
})
});
开始运行最小值(并且运行最大值)。
将运行最小值开始为0
(因为一切都保证小于此值)。以float("inf")
开始运行最大值(因为一切都保证大于此值)。
或者,将两者作为列表的第一个元素开始(这是一个真正的最小值/最大值,或者是另一个低于/高于它的元素)。