[英]Finding a value closest to the mean in a list
我有一个家庭作业,它正在开发一个代码,将从用户那里获取10个数字。 然后代码应该将这些数字添加到列表中。 它不应该两次添加相同的数字。 当取10个数字时,需要计算平均值。 保存列表原始表单。 按列表降序排序。 然后,它只需要删除最接近列表中的平均值的一个数字。
这是我的问题:我无法找到列表中最接近均值的数字。
#I tried this:
liste.append(mean)
liste.sort()
if liste[6]-liste[5]>=liste[5]-liste[4]:
print("Ortalamaya("+str(mean)+") en yakın sayı "+str(liste[6])+" olarak bulunmuştur.")
liste.remove(liste[6])
liste.remove(mean)
else:
print("Ortalamaya("+str(mean)+") en yakın sayı "+str(liste[4])+" olarak bulunmuştur.")
liste.remove(liste[4])
liste.remove(mean)
它不起作用。 :(
你做的就像删除中位数,而不是意思。 要查找最接近均值的数字,请再次扫描列表(您不需要首先对其进行排序):
diff = []
for i, value in liste:
diff.append((abs(value-mean), i))
_, i = min(diff)
liste.pop(i)
我们使用列表diff
来存储平均值和位置的绝对差值,然后找到最小差值并从liste
移除该位置。 之后,您可以添加平均值来liste
并对其进行排序,如果这是您的家庭作业的一部分。
我今天发现了我的问题。 非常感谢@adrtam。
(我想我应该用英语编写代码。因为我试图将它从土耳其语翻译成英语.o_o)
这是我需要的答案;
import math
diff_list=list()
for num in numlist:
diff=mean-num
diff=math.fabs(diff)
diff_list.append(diff)
print("str(numlist[diff_list.index(min(diff_list))])"+” is found as the closest number to the mean in the number list and deleted.")
numlist.pop(diff_list.index(min(diff_list)))
我创建了另一个列表来保存数字列表中数字的绝对平均值。 然后找到最接近的意思。 拿它的索引。 然后从数字列表中删除该索引。 因为它们没有排序所以它们的索引应该相同。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.